Create a Task¶
Tasks exist in the context of the service that provides the actions executed on it. Like repositories, the service name is part of the endpoint URL.
Tasks are created by a POST request to the service endpoint URL. The request body contains the properties and metadata described in Tasks. Only the name property is mandatory.
Example - endpoint URL for creating a task in the operator-p4 service
/v1/services/operator-p4/tasks
The result will be the created task including administrative properties such as the task ID (tid property) and the href URL.
Code Examples¶
Bash¶
Run the Create a Document example first and call the script with the returned href.
#!/bin/bash
if [ -z $1 ]; then
  echo "Please call with href as parameter"
  exit 0
fi
# !Assuming $TOKEN contains a valid JWT access token!
AUTH="Authorization: Bearer $TOKEN"
JSON="Content-Type:application/json"
# create print task for operator-p4 service
TASK=$(jq -c -n '{
  "name":"My Task",
  "metadata": {
    "description": "Print task",
    "Printer": "LocalPrinter"
  },
  "lists": {
    "input": {
      "embedded": {
        "listItems": [
          {
            "href": "/v1/services/operator-fileupload/repo/'$1'"
          }
        ]
      }
    }
  }
}')
RES=$(curl -k -s -X POST -H "$AUTH" -H "$JSON" -d "$TASK" "https://localhost:3008/v1/services/operator-p4/tasks")
TASKID=$(echo "$RES" | jq -r '.tid')
echo "Created task with taskId $TASKID"
JavaScript¶
Run the Create a Document example first and call the function with the returned href.
'use strict';
const request = require('request-promise-native');
const createTask = async function(token, href) {
  // create print task for operator-p4 service
  let req = {
    url: 'https://localhost:3008/v1/services/operator-p4/tasks',
    headers: {
      Authorization: `Bearer ${token}`
    },
    body: {
      name: 'My Task',
      metadata: {
        description: 'Print task',
        Printer: 'LocalPrinter'
      },
      lists: {
        input: {
          embedded: {
            listItems: [
              {
                href
              }
            ]
          }
        }
      }
    },
    resolveWithFullResponse: true,
    json: true,
    strictSSL: false
  };
  let res = await request.post(req);
  const taskId = res.body.tid;
  console.log(`Created task with taskId ${taskId}`);
};