# Tasks ## List tasks **get** `/api/v1/tasks` Returns tasks for the resolved space; includes `spaceVersion` from `repVersionGet` semantics. ### Query Parameters - `contextId: optional string` - `cursor: optional string` Opaque cursor from the previous response `nextCursor`. - `includeDeleted: optional boolean` - `limit: optional number` - `listId: optional string` - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. - `status: optional string` ### Returns - `data: array of Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). - `nextCursor: optional string` ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/tasks ``` #### Response ```json { "data": [ { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "sortOrder": 0, "todoId": "todoId", "complexity": "complexity", "contextId": "contextId", "dateDue": "2019-12-27T18:11:19.117Z", "dateStart": "2019-12-27T18:11:19.117Z", "durationEstimate": 0, "durationMs": 0, "goalId": "goalId", "isImportant": true, "isTimeSensitive": true, "listId": "listId", "name": "name", "notesMarkdown": "notesMarkdown", "status": "status", "TodoPredecessorsAllAny": "ALL", "TodoPredecessorsView": true } ], "spaceVersion": 0, "nextCursor": "nextCursor" } ``` ## Create task **post** `/api/v1/tasks` Increments the Replicache space version via repVersionIncrement after writing. ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Body Parameters - `categoryIds: optional array of string` - `contextId: optional string` - `goalId: optional string` - `listId: optional string` - `name: optional string` - `scheduleIds: optional array of string` - `spaceId: optional string` - `tagIds: optional array of string` - `todoId: optional string` ### Returns - `SingleResponseTodo = object { data, spaceVersion }` - `data: Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/tasks \ -H 'Content-Type: application/json' \ -d '{}' ``` #### Response ```json { "data": { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "sortOrder": 0, "todoId": "todoId", "complexity": "complexity", "contextId": "contextId", "dateDue": "2019-12-27T18:11:19.117Z", "dateStart": "2019-12-27T18:11:19.117Z", "durationEstimate": 0, "durationMs": 0, "goalId": "goalId", "isImportant": true, "isTimeSensitive": true, "listId": "listId", "name": "name", "notesMarkdown": "notesMarkdown", "status": "status", "TodoPredecessorsAllAny": "ALL", "TodoPredecessorsView": true }, "spaceVersion": 0 } ``` ## Get task **get** `/api/v1/tasks/{todoId}` Get task ### Path Parameters - `todoId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Returns - `SingleResponseTodo = object { data, spaceVersion }` - `data: Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/tasks/$TODO_ID ``` #### Response ```json { "data": { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "sortOrder": 0, "todoId": "todoId", "complexity": "complexity", "contextId": "contextId", "dateDue": "2019-12-27T18:11:19.117Z", "dateStart": "2019-12-27T18:11:19.117Z", "durationEstimate": 0, "durationMs": 0, "goalId": "goalId", "isImportant": true, "isTimeSensitive": true, "listId": "listId", "name": "name", "notesMarkdown": "notesMarkdown", "status": "status", "TodoPredecessorsAllAny": "ALL", "TodoPredecessorsView": true }, "spaceVersion": 0 } ``` ## Update task **patch** `/api/v1/tasks/{todoId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `todoId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Body Parameters - `spaceId: optional string` ### Returns - `SingleResponseTodo = object { data, spaceVersion }` - `data: Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/tasks/$TODO_ID \ -X PATCH \ -H 'Content-Type: application/json' \ -d '{}' ``` #### Response ```json { "data": { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "sortOrder": 0, "todoId": "todoId", "complexity": "complexity", "contextId": "contextId", "dateDue": "2019-12-27T18:11:19.117Z", "dateStart": "2019-12-27T18:11:19.117Z", "durationEstimate": 0, "durationMs": 0, "goalId": "goalId", "isImportant": true, "isTimeSensitive": true, "listId": "listId", "name": "name", "notesMarkdown": "notesMarkdown", "status": "status", "TodoPredecessorsAllAny": "ALL", "TodoPredecessorsView": true }, "spaceVersion": 0 } ``` ## Delete task (soft) **delete** `/api/v1/tasks/{todoId}` Increments the Replicache space version via repVersionIncrement after writing. ### Path Parameters - `todoId: string` ### Query Parameters - `spaceId: optional string` Optional space id; when omitted, the user’s default space is used. ### Returns - `SingleResponseTodo = object { data, spaceVersion }` - `data: Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). ### Example ```http curl https://$FLUIDWAVE_HOST/api/v1/tasks/$TODO_ID \ -X DELETE ``` #### Response ```json { "data": { "id": "id", "createdAt": "2019-12-27T18:11:19.117Z", "deletedAt": "2019-12-27T18:11:19.117Z", "isDeleted": true, "spaceId": "spaceId", "updatedAt": "2019-12-27T18:11:19.117Z", "versionUpdatedAt": 0, "sortOrder": 0, "todoId": "todoId", "complexity": "complexity", "contextId": "contextId", "dateDue": "2019-12-27T18:11:19.117Z", "dateStart": "2019-12-27T18:11:19.117Z", "durationEstimate": 0, "durationMs": 0, "goalId": "goalId", "isImportant": true, "isTimeSensitive": true, "listId": "listId", "name": "name", "notesMarkdown": "notesMarkdown", "status": "status", "TodoPredecessorsAllAny": "ALL", "TodoPredecessorsView": true }, "spaceVersion": 0 } ``` ## Domain Types ### Base Entity - `BaseEntity = object { id, createdAt, deletedAt, 4 more }` - `id: string` - `createdAt: string` - `deletedAt: string` - `isDeleted: boolean` - `spaceId: string` - `updatedAt: string` - `versionUpdatedAt: number` ### Single Response Todo - `SingleResponseTodo = object { data, spaceVersion }` - `data: Todo` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean` - `spaceVersion: number` Current Replicache space version (`Space.version`). ### Todo - `Todo = BaseEntity` - `sortOrder: number` - `todoId: string` - `complexity: optional string` - `contextId: optional string` - `dateDue: optional string` - `dateStart: optional string` - `durationEstimate: optional number` - `durationMs: optional number` - `goalId: optional string` - `isImportant: optional boolean` - `isTimeSensitive: optional boolean` - `listId: optional string` - `name: optional string` - `notesMarkdown: optional string` - `status: optional string` - `TodoPredecessorsAllAny: optional "ALL" or "ANY"` - `"ALL"` - `"ANY"` - `TodoPredecessorsView: optional boolean`