(Quick Reference) Service: Assign a route to an employee

Description: This web service is used to assign an employee which is not assigned before to a route

URL:

https://BASE_URL/api/VERSION/routeEmployees

Method: POST

Request content type: application/json

Parameters:

NameDescriptionTypeRequiredExample values
employeeIdthe id of employee to be assignedLongYes111
routeIdthe id of the assigned routeLongYes777
rootingDatethe date of the operationDateYes"2016-12-10"
repeatPeriodrepetition type of the operationStringYesNever, Weekly, Monthly

repeatPeriod can only be one of this value : "Never", "Weekly", "Monthly"
In order to assign an employee to a route, all the customers assigned to this route must be already assigned to the specified employee
In the same rooting date we can't assign an employee to a route if the are already assigned to each other.

Success Output

Success case: response.status = 201
{
  "id": 1,
  "rootingDate": "2016-12-10",
  "repeatPeriod": "Monthly",
  "employee": {
    "id": 3,
    "reference": "R-E-001",
    "href": "/api/v1.0/employees/3"
  },
  "route": {
    "id": 2,
    "reference": "R-RT-001",
    "href": "/api/v1.0/routes/2"
  },
  "dateCreated": "2016-10-19T10:42:09Z",
  "lastUpdated": "2016-10-24T09:32:13Z"
}

Failure Output

Failure case:response.status = 400
{
  "error": "invalid_param_type",
  "error_description": "The type of parameter routeId you provided is not valid for this request."
}
{
  "error": "missing_param",
  "error_description": "employeeId parameter is missing"
}
{
  "error": "invalid_date_format",
  "error_description": "Invalid date filter (not ISO-8601 formatted): rootingDate"
}
{
  "error": "save_not_authorized",
  "error_description": "the specified route is already assigned to the specified employee"
}
{
  "error": "save_not_authorized",
  "error_description": "Not all the assigned customers to the route are assigned to the employee"
}
{
  "error": "save_failed",
  "error_description": "Failed to save instance"
}

Failure case:response.status = 404
{
  "error": "not_found",
  "error_description": "The employee with the id 999 doesn't exist."
}

Failure case:response.status = 500
{
  "error": "server_error",
  "error_description": "Oops! Something went wrong..."
}