Api >

Service Portal REST API

Should get all IVR Services
Given I am authenticated as customer K0002
And there is an IVR Service with service number 123
With display name IVR Service 1 and extension 23
And another IVR Service with service number 678
With display name IVR Service 2 and extension 34
When I send /api/customers/K0002/targets/ivr-services
Then the response code should be equal HTTP/1.1 200 OK
And the response should look like:
{
  "href": "/api/customers/K0002/targets/ivr-services?_offset=0&_pagesize=16&_orderBy=serviceNumber&_order=ASC",
  "offset": 0,
  "total": 2,
  "size": 2,
  "links": [{
    "rel": "availableTimeoutDestinations",
    "href": "/api/customers/K0002/targets/ivr-services/available-destinations-on-timeout"
  }],
  "items": [{
    "href": "/api/customers/K0002/targets/ivr-services/123",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 1"
    }, {
      "name": "displayName",
      "value": "IVR Service 1"
    }, {
      "name": "extensionNumber",
      "value": "23"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 123
    }, {
      "name": "serviceCode",
      "value": "*760123"
    }]
  }, {
    "href": "/api/customers/K0002/targets/ivr-services/678",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 2"
    }, {
      "name": "displayName",
      "value": "IVR Service 2"
    }, {
      "name": "extensionNumber",
      "value": "34"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 678
    }, {
      "name": "serviceCode",
      "value": "*760678"
    }]
  }]
}
Should get list of IVR Services ordered by extensionNumber ascending
Given I am authenticated as customer K0002
And there is an IVR Service with service number 123
With display name IVR Service 1 and extension 23
And another IVR Service with service number 678
With display name IVR Service 2 and extension 34
When I send /api/customers/K0002/targets/ivr-services?_orderBy=extensionNumber&_order=asc
Then the response code should be equal HTTP/1.1 200 OK
And the response should look like:
{
  "href": "/api/customers/K0002/targets/ivr-services?_offset=0&_pagesize=16&_orderBy=extensionNumber&_order=ASC",
  "offset": 0,
  "total": 2,
  "size": 2,
  "links": [{
    "rel": "availableTimeoutDestinations",
    "href": "/api/customers/K0002/targets/ivr-services/available-destinations-on-timeout"
  }],
  "items": [{
    "href": "/api/customers/K0002/targets/ivr-services/123",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 1"
    }, {
      "name": "displayName",
      "value": "IVR Service 1"
    }, {
      "name": "extensionNumber",
      "value": "23"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 123
    }, {
      "name": "serviceCode",
      "value": "*760123"
    }]
  }, {
    "href": "/api/customers/K0002/targets/ivr-services/678",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 2"
    }, {
      "name": "displayName",
      "value": "IVR Service 2"
    }, {
      "name": "extensionNumber",
      "value": "34"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 678
    }, {
      "name": "serviceCode",
      "value": "*760678"
    }]
  }]
}
Should get list of IVR Services ordered by extensionNumber descending
Given I am authenticated as customer K0002
And there is an IVR Service with service number 123
With display name IVR Service 1 and extension 23
And another IVR Service with service number 678
With display name IVR Service 2 and extension 34
When I send /api/customers/K0002/targets/ivr-services?_orderBy=extensionNumber&_order=desc
Then the response code should be equal HTTP/1.1 200 OK
And the response should look like:
{
  "href": "/api/customers/K0002/targets/ivr-services?_offset=0&_pagesize=16&_orderBy=extensionNumber&_order=DESC",
  "offset": 0,
  "total": 2,
  "size": 2,
  "links": [{
    "rel": "availableTimeoutDestinations",
    "href": "/api/customers/K0002/targets/ivr-services/available-destinations-on-timeout"
  }],
  "items": [{
    "href": "/api/customers/K0002/targets/ivr-services/678",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 2"
    }, {
      "name": "displayName",
      "value": "IVR Service 2"
    }, {
      "name": "extensionNumber",
      "value": "34"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 678
    }, {
      "name": "serviceCode",
      "value": "*760678"
    }]
  }, {
    "href": "/api/customers/K0002/targets/ivr-services/123",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 1"
    }, {
      "name": "displayName",
      "value": "IVR Service 1"
    }, {
      "name": "extensionNumber",
      "value": "23"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 123
    }, {
      "name": "serviceCode",
      "value": "*760123"
    }]
  }]
}
Should get list of IVR Services ordered by name ascending
Given I am authenticated as customer K0002
And there is an IVR Service with service number 123
With display name IVR Service 1 and extension 23
And another IVR Service with service number 678
With display name IVR Service 2 and extension 34
When I send /api/customers/K0002/targets/ivr-services?_orderBy=name&_order=asc
Then the response code should be equal HTTP/1.1 200 OK
And the response should look like:
{
  "href": "/api/customers/K0002/targets/ivr-services?_offset=0&_pagesize=16&_orderBy=name&_order=ASC",
  "offset": 0,
  "total": 2,
  "size": 2,
  "links": [{
    "rel": "availableTimeoutDestinations",
    "href": "/api/customers/K0002/targets/ivr-services/available-destinations-on-timeout"
  }],
  "items": [{
    "href": "/api/customers/K0002/targets/ivr-services/123",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 1"
    }, {
      "name": "displayName",
      "value": "IVR Service 1"
    }, {
      "name": "extensionNumber",
      "value": "23"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 123
    }, {
      "name": "serviceCode",
      "value": "*760123"
    }]
  }, {
    "href": "/api/customers/K0002/targets/ivr-services/678",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 2"
    }, {
      "name": "displayName",
      "value": "IVR Service 2"
    }, {
      "name": "extensionNumber",
      "value": "34"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 678
    }, {
      "name": "serviceCode",
      "value": "*760678"
    }]
  }]
}
Should get list of IVR Services ordered by name descending
Given I am authenticated as customer K0002
And there is an IVR Service with service number 123
With display name IVR Service 1 and extension 23
And another IVR Service with service number 678
With display name IVR Service 2 and extension 34
When I send /api/customers/K0002/targets/ivr-services?_orderBy=name&_order=desc
Then the response code should be equal HTTP/1.1 200 OK
And the response should look like:
{
  "href": "/api/customers/K0002/targets/ivr-services?_offset=0&_pagesize=16&_orderBy=name&_order=DESC",
  "offset": 0,
  "total": 2,
  "size": 2,
  "links": [{
    "rel": "availableTimeoutDestinations",
    "href": "/api/customers/K0002/targets/ivr-services/available-destinations-on-timeout"
  }],
  "items": [{
    "href": "/api/customers/K0002/targets/ivr-services/678",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 2"
    }, {
      "name": "displayName",
      "value": "IVR Service 2"
    }, {
      "name": "extensionNumber",
      "value": "34"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 678
    }, {
      "name": "serviceCode",
      "value": "*760678"
    }]
  }, {
    "href": "/api/customers/K0002/targets/ivr-services/123",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 1"
    }, {
      "name": "displayName",
      "value": "IVR Service 1"
    }, {
      "name": "extensionNumber",
      "value": "23"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 123
    }, {
      "name": "serviceCode",
      "value": "*760123"
    }]
  }]
}
GET retrieves filtered Customer's IVRs
Filtering is done on fields :
  • name
  • serviceNumber
  • extensionNumber
Given I am authenticated as customer K0002
And there is an IVR Service with service number 123
With display name IVR Service 1 and extension 18
And another IVR Service with service number 678
With display name IVR Service 2 and extension 34
When I send /api/customers/K0002/targets/ivr-services?_q=18
Then I should receive HTTP/1.1 200 OK
with following body:
{
  "href": "/api/customers/K0002/targets/ivr-services?_offset=0&_pagesize=16&_q=18&_orderBy=serviceNumber&_order=ASC",
  "offset": 0,
  "total": 1,
  "size": 1,
  "links": [{
    "rel": "availableTimeoutDestinations",
    "href": "/api/customers/K0002/targets/ivr-services/available-destinations-on-timeout"
  }],
  "items": [{
    "href": "/api/customers/K0002/targets/ivr-services/123",
    "links": [],
    "data": [{
      "name": "name",
      "value": "IVR Service 1"
    }, {
      "name": "displayName",
      "value": "IVR Service 1"
    }, {
      "name": "extensionNumber",
      "value": "18"
    }, {
      "name": "type",
      "value": "IVR"
    }, {
      "name": "serviceNumber",
      "value": 123
    }, {
      "name": "serviceCode",
      "value": "*760123"
    }]
  }]
}
Missing Customer
Given I am authenticated as Admin
When I ask for a resource at /api/customers/K404/targets/ivr-services for customer which doesn't exists
Then the response code should be equal HTTP/1.1 404 Not Found
And the response should look like:
{
  "title": "Customer not found",
  "detail": "Customer with identifier K404 has not been found",
  "described_by": "http://api.nfon.net/probs/customer-not-found"
}
Customer can't access to resource which belongs to another customer
Given I am authenticated as customer K0002
When I ask for a resource at /api/customers/K0003/targets/ivr-services
Then the response code should be equal HTTP/1.1 403 Forbidden
And the response should look like:
{
  "title": "Access forbidden",
  "detail": "Access denied to [Customer] with id [K0003]",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}
System Integrator cannot retrieve the list of IVR Services for Customer, that does not belong to him
Given I am authenticated as System Integrator S0002
When I send /api/customers/K0003/targets/ivr-services
Then I should receive HTTP/1.1 403 Forbidden
{
  "title": "Access forbidden",
  "detail": "Access denied to [Customer] with id [K0003]",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}
Operator cannot retrieve the list of IVR Services for Customer, that does not belong to him
Given I am authenticated as Operator C0002
When I send /api/customers/K0003/targets/ivr-services
Then I should receive HTTP/1.1 403 Forbidden
{
  "title": "Access forbidden",
  "detail": "Access denied to [Customer] with id [K0003]",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}