Skip to main content

PUT /tasks/{taskId}

Description

Updates data for a task, copies or moves a task

The route handles the HTTP PUT request made to the /tasks/{taskId} path.

Depending on the payload, the route can handle different operations with tasks: update, copy, move.

Parameters

The next parameter is sent in the request line:

  • taskId (number) - (required) the id of a task that is updated/copied/moved

Payload

Depending on the payload, the route can handle different operations with tasks: update, copy, move.

Payload for the update operation

The server needs to receive a JSON object with all fields for a task (old and new/modified data). The description of the task object, see here: tasks property.

Example:

{
"id": 67,
"text": "New Task",
"start": "2024-06-10 00:00:00",
"end": "2024-06-11 00:00:00",
"duration": 1,
"progress": 0,
"parent": 0,
"type": "task",
"lazy": false,
"details": " ", // the description field in the task editor
}

Payload for the move operation

The server needs to receive a JSON object with the next parameters:

  • operation (string) - (required) the operation name which should be "move"
  • target (string | number) - (required) the id of a task before/after which to move the current task
  • mode (string) - (required) defines where to move a task; possible values: "before" | "after" | "up" | "down" | "child"

Example:

{ 
"operation": "move",
"target": 20,
"mode": "after" // "before" | "after" | "up" | "down" | "child"
}

Payload for the copy operation

The server needs to receive a JSON object with the next parameters:

  • operation (string) - (required) the operation name which should be "copy"
  • target (number) - (required) the id of a task before/after which to copy the current task
  • mode (string) - (required) defines where to copy a task: "after" or "before" the target
  • lazy (boolean) - (optional) the parameter indicates if it's necessary to copy nested tasks on the backend; if a task that is copied is marked as "lazy" (see the lazy parameter in the tasks property) and it has nested tasks that are not yet loaded from the backend, the value is set to true, which means that tasks should be copied on the backend; if there are nested tasks in the client data, the parameter is set to false, which means that tasks will be copied on the client by sending its "copy-task" actions

Example:

{
"operation": "copy",
"target": 20,
"mode": "after" // "before"
}

Response

Response for the update operation

A JSON object with the id of the updated task is returned.

Example:

{
"id":23
}

Response for the move operation

The server returns a JSON object with the id of the moved task.

Example:

{
"id":34
}

Response for the copy operation

The server returns a JSON object with the ID of a newly copied task

Example:

{
"id":67
}

The HTTP status code shows whether the request succeeds (response.status == 200) or fails (response.status == 500). In case of a failure the error text is returned.


Related articles: