(Quick Reference)

77 Assign customer to route - Reference Documentation

Version: 2.1

77 Assign customer to route

77.1 List

Service: List of couples route and customer

Description: This web service returns a json list of couples (route,customer).

URL:

https://BASE_URL/api/VERSION/routeCustomers

Method: GET

Parameters:

Pagination parameters:

NameDescriptionTypeRequiredPossible values
maxLimits the number of resources requested to return.Integerno 
offsetTells where to start returning records from the entire set of results.Integerno 
orderOrders ascending or descending.Integernoasc,desc
sortOrders the results by the specified field.Stringno 

The max parameter is set to 100 by default.

Filters parameters:

NameDescriptionTypeRequiredExample values
dateCreated_gtFilters by the resource's creation date time and operator greater thanDateno2016-08-15T14:52:48Z
dateCreated_gteFilters by the resource's creation date time and operator greater than or equalDateno 
dateCreated_ltFilters by the resource's creation date time and operator less thanDateno 
dateCreated_lteFilters by the resource's creation date time and operator less than or equalDateno 
lastUpdated_gtFilters by the resource's last-modified date time and operator greater thanDateno 
lastUpdated_gteFilters by the resource's last-modified date time and operator greater than or equalDateno 
lastUpdated_ltFilters by the resource's last-modified date time and operator less thanDateno 
lastUpdated_lteFilters by the resource's last-modified date time and operator less than or equalDateno 
customerReferenceWildcard search by the resource's customer referenceStringno 
routeReferenceWildcard search by the resource's route referenceStringno 

Dates should be formatted as the ISO-8601 format (YYYY-MM-DDTHH:MM:SSZ)

Success Output

Success case: response.status=200

{
  "paging": {
    "total": 3,
    "max": 100,
    "offset": 0,
    "previous": null,
    "next": null
  },
  "data": [
    {
      "id": 1,
      "rank": 2,
      "route": {
        "id": 2,
        "reference": "R-RT-001",
        "href": "/api/v1.0/routes/2"
      },
      "customer": {
        "id": 19,
        "reference": "R-C-003",
        "href": "/api/v1.0/customers/19"
      },
      "organization": "entity1",
      "dateCreated": "2016-10-18T13:30:02Z",
      "lastUpdated": "2016-10-19T07:55:52Z"
    },
    {
      "id": 2,
      "rank": 2,
      "route": {
        "id": 2,
        "reference": "R-RT-001",
        "href": "/api/v1.0/routes/2"
      },
      "customer": {
        "id": 2,
        "reference": "R-CUS2",
        "href": "/api/v1.0/customers/2"
      },
      "organization": "entity1",
      "dateCreated": "2016-10-18T14:42:24Z",
      "lastUpdated": "2016-10-18T14:42:24Z"
    },
    {
      "id": 3,
      "rank": null,
      "route": {
        "id": 4,
        "reference": "R-R-001",
        "href": "/api/v1.0/routes/4"
      },
      "customer": {
        "id": 19,
        "reference": "R-C-003",
        "href": "/api/v1.0/customers/19"
      },
      "organization": "entity1",
      "dateCreated": "2016-10-18T16:06:24Z",
      "lastUpdated": "2016-10-18T16:06:24Z"
    }
  ]
}

Failure Output

Failure case:response.status = 400
{
   "error": "invalid_param",
   "error_description": "The parameters [dateCreated_gta] you provided are not valid for this request."
}
{
    "error": "invalid_datetime_format",
    "error_description": "Invalid datetime filter (not ISO-8601 formatted): [2016-08-1Z]"
}
Failure case:response.status = 500
{
   "error": "server_error",
   "error_description": "Oops! Something went wrong..."
}

77.2 Show

Service: Show an assigned customer to a route

Description: This web service return an existing assigned customer to a route object of the specified id in JSON format

Method: GET

URL:

https://BASE_URL/api/VERSION/routeCustomers/{id}

Parameters:

NameDescriptionTypeRequiredExample values
idid of the desired recordLongYes777

URL with external_id:

https://BASE_URL/api/VERSION/routeCustomers/reference/{routeId}/{customerId}

Parameters:

NameDescriptionTypeRequiredExamples values
routeIdreference of the routeStringYesR-002
customerIdreference of the customerStringYesC-001

Success Output

Success case: response.status = 200
{
  "id": 2,
  "rank": 2,
  "route": {
    "id": 2,
    "reference": "R-RT-001",
    "href": "/api/v1.0/routes/2"
  },
  "customer": {
    "id": 2,
    "reference": "R-CUS2",
    "href": "/api/v1.0/customers/2"
  },
  "organization": "entity1",
  "dateCreated": "2016-10-18T14:42:24Z",
  "lastUpdated": "2016-10-18T14:42:24Z"
}

Failure Output

Failure case:response.status = 400
{
    "error": "invalid_param_type",
    "error_description": "The type of parameter id you provided is not valid for this request."
}

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

77.3 Create

Service: Assign a route to a customer

Description: This web service is used to assign a list of customers to a route whitch each one of them is not assigned before

URL:

https://BASE_URL/api/VERSION/routeCustomers

Method: POST

Request content type: application/json

Parameters:

NameDescriptionTypeRequiredExample values
routeIdthe id of the assigned routeLong/StringYes777
customersA list of couple (id,rank) of customerArrayYes{id:1,rank:2},{id:"C-001",rank:1}
useExternalIdBy default, it is set to false. set it to true if you want to use external ids.Booleannotrue , false

A customer can only be assigned one time to a route
Each customer of the same route has a unique rank

Success Output

Success case: response.status = 201
[
  {
    "id": 12,
    "rank": 1,
    "route": {
      "id": 2,
      "reference": "R-RT-001",
      "href": "/api/v1.0/routes/2"
    },
    "customer": {
      "id": 2,
      "reference": "R-CUS2",
      "href": "/api/v1.0/customers/2"
    },
    "organization": "entity1",
    "dateCreated": "2016-10-26T13:43:48Z",
    "lastUpdated": "2016-10-26T13:43:48Z"
  },
  {
    "id": 13,
    "rank": 2,
    "route": {
      "id": 2,
      "reference": "R-RT-001",
      "href": "/api/v1.0/routes/2"
    },
    "customer": {
      "id": 19,
      "reference": "R-C-003",
      "href": "/api/v1.0/customers/19"
    },
    "organization": "entity1",
    "dateCreated": "2016-10-26T13:43:48Z",
    "lastUpdated": "2016-10-26T13:43:48Z"
  }
]

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": "routerId parameter is missing"
}
{
  "error": "invalid_param_type",
  "error_description": "An invalid value was specified for parameter: rank of a customer (must be Less than 2)"
}
{
  "error": "invalid_param_type",
  "error_description": "An invalid value was specified for parameter: rank (must be Integer)"
}
{
{
  "error": "not_unique",
  "error_description": "rank already used"
}
}
{
  "error": "save_not_authorized",
  "error_description": "the specified route is already assigned to the specified customer"
}
{
  "error": "save_failed",
  "error_description": "Failed to save instance"
}

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

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

77.4 Update

Service: Update an assigned route to a customer

Description: This web service is used to update an assigned customer to a route

URL:

https://BASE_URL/api/VERSION/routeCustomers/{id}

Method: PUT

Request content type: application/json

Parameters:

NameDescriptionTypeRequiredExample values
idid of the desired record to updateLongYes123
customerIdthe id of customer to be assignedLongYes111
routeIdthe id of the assigned routeLongYes777
rank IntegerYes 

URL with external_id:

https://BASE_URL/api/VERSION/routeCustomers/reference/{routeId}/{customerId}

Parameters:

NameDescriptionTypeRequiredExamples values
routeIdreference of the routeStringYesR-002
customerIdreference of the customerStringYesC-001
rank IntegerYes 

A customer can only be assigned one time to a route

Success Output

Success case: response.status = 200
{
  "id": 7,
  "rank": 4,
  "route": {
    "id": 4,
    "reference": "R-R-001",
    "href": "/api/v1.0/routes/4"
  },
  "customer": {
    "id": 2,
    "reference": "R-CUS2",
    "href": "/api/v1.0/customers/2"
  },
  "organization": "entity1",
  "dateCreated": "2016-10-19T09:33:05Z",
  "lastUpdated": "2016-10-19T09:42:20Z"
}

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": "customerId parameter is missing"
}
{
  "error": "invalid_param_type",
  "error_description": "An invalid value was specified for parameter: rank (must be Integer)"
}
{
  "error": "update_not_authorized",
  "error_description": "the specified route is already assigned to the specified customer"
}
{
  "error": "invalid_param_type",
  "error_description": "An invalid value was specified for parameter: rank of a customer (must be Less than 2)"
}
{
  "error": "save_failed",
  "error_description": "Failed to save instance"
}

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

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

77.5 Delete

Service: Dissociate a customer from a route

Description: This web service is used to dissociate an assigned customer to a route and delete the data from the database

Method: DELETE

URL:

https://BASE_URL/api/VERSION/routeCustomers/{id}

Parameters:

NameDescriptionTypeRequiredExample values
idid of the desired record to deleteLongYes777

URL with external_id:

https://BASE_URL/api/VERSION/routeCustomers/reference/{routeId}/{customerId}

Parameters:

NameDescriptionTypeRequiredExamples values
routeIdreference of the routeStringYesR-002
customerIdreference of the customerStringYesC-001

Success Output

Success case: response.status = 200
{
  "success": "true",
  "success_description": "Instance deleted successfully"
}

Failure Output

Failure case:response.status = 400
{
	"error":"invalid_param_type",
 	"error_description": "The type of parameter id you provided is not valid for this request."
}

{
	"error": "delete_failed",
	"error_description": "Failed to delete instance."
}

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

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