Api >

Service Portal REST API

GET returns XCAPI Device data
Given I am authenticated as K0002
and there is a XCAPI Device with ID device123 and with concurrent lines set to 12
and with useSiteOptionsFromSite set to false
which has been created at 2015-10-12 04:25 and setE164DidInTo is set true and cidScreening is set ALLOW_ANY When I send /api/customers/K0002/devices/xcapi/device123
Then I should receive HTTP/1.1 200 OK with following body:
{
  "href": "/api/customers/K0002/devices/xcapi/device123",
  "links": [{
    "rel": "deviceType",
    "href": "/api/customers/K0002/device-types/XCAPI"
  }, {
    "rel": "site",
    "href": "/api/customers/K0002/sites/1"
  }, {
    "rel": "customer",
    "href": "/api/customers/K0002"
  }, {
    "rel": "activation",
    "href": "/api/customers/K0002/devices/xcapi/device123/activate"
  }, {
    "rel": "siteOptions",
    "href": "/api/customers/K0002/devices/xcapi/device123/site-options"
  }],
  "data": [{
    "name": "deviceType",
    "value": "XCAPI"
  }, {
    "name": "deviceId",
    "value": "device123"
  }, {
    "name": "uniqueIdentifier",
    "value": "device123"
  }, {
    "name": "extension",
    "value": ""
  }, {
    "name": "created",
    "value": "2015-10-12 04:25"
  }, {
    "name": "active",
    "value": true
  }, {
    "name": "deviceMasterCategory",
    "value": "UNPROVISIONED_SIP"
  }, {
    "name": "deviceCategory",
    "value": "category"
  }, {
    "name": "masterCategory",
    "value": "UNPROVISIONED_SIP"
  }, {
    "name": "category",
    "value": "category"
  }, {
    "name": "site",
    "value": "Dummy site K0002"
  }, {
    "name": "siteName",
    "value": "Dummy site K0002"
  }, {
    "name": "siteStreet",
    "value": ""
  }, {
    "name": "siteZip",
    "value": ""
  }, {
    "name": "siteCity",
    "value": ""
  }, {
    "name": "siteState",
    "value": null
  }, {
    "name": "siteCountry",
    "value": ""
  }, {
    "name": "siteSalesForceId",
    "value": "1"
  }, {
    "name": "note",
    "value": null
  }, {
    "name": "concurrentLines",
    "value": 12
  }, {
    "name": "suppressLineno",
    "value": "DEFAULT"
  }, {
    "name": "setE164DidInTo",
    "value": true
  }, {
    "name": "cidScreening",
    "value": "ALLOW_EXTENSION_DID"
  }, {
    "name": "useSiteOptionsFromSite",
    "value": false
  }]
}
Cannot read data for missing Customer
Given I am authenticated as Admin
When I send /api/customers/K0404/devices/xcapi/00123
Then I should receive HTTP/1.1 404 Not Found
with following body:
{
  "described_by": "http://api.nfon.net/probs/customer-not-found",
  "title": "Customer not found",
  "detail": "Customer with identifier K0404 has not been found"
}
Cannot read data for missing Device
Given I am authenticated as customer K0002
And there is no XCAPI device with id ABCDEF012345
When I send /api/customers/K0002/devices/xcapi/ABCDEF012345
Then I should receive HTTP/1.1 404 Not Found
with following body:
{
  "title": "Device not found",
  "detail": "Device with unique identifier ABCDEF012345 has not been found",
  "described_by": "http://api.nfon.net/probs/device-not-found"
}
Customer cannot GET other Customer's XCAPI device data
Given I am authenticated as customer K0003
and there is a XCAPI Device with ID device123 and with concurrent lines set to 12
When I send /api/customers/K0002/devices/xcapi/device123
Then I should get HTTP/1.1 403 Forbidden
{
  "title": "Access forbidden",
  "detail": "Access denied to [Customer] with id [K0002]",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}
System integrator can see sipUsername
Given I am authenticated as System Integrator S0002
and there is a XCAPI Device with ID device123 and with concurrent lines set to 12
and with useSiteOptionsFromSite set to false
which has been created at 2015-10-12 04:25 When I send /api/customers/K0002/devices/xcapi/device123
Then I should receive HTTP/1.1 200 OK with following body:
{
  "href": "/api/customers/K0002/devices/xcapi/device123",
  "links": [{
    "rel": "deviceType",
    "href": "/api/customers/K0002/device-types/XCAPI"
  }, {
    "rel": "site",
    "href": "/api/customers/K0002/sites/1"
  }, {
    "rel": "customer",
    "href": "/api/customers/K0002"
  }, {
    "rel": "activation",
    "href": "/api/customers/K0002/devices/xcapi/device123/activate"
  }, {
    "rel": "siteOptions",
    "href": "/api/customers/K0002/devices/xcapi/device123/site-options"
  }],
  "data": [{
    "name": "uniqueIdentifier",
    "value": "device123"
  }, {
    "name": "concurrentLines",
    "value": 12
  }, {
    "name": "suppressLineno",
    "value": "DEFAULT"
  }, {
    "name": "useSiteOptionsFromSite",
    "value": false
  }, {
    "name": "deviceType",
    "value": "XCAPI"
  }, {
    "name": "deviceId",
    "value": "device123"
  }, {
    "name": "extension",
    "value": ""
  }, {
    "name": "sipUsername",
    "value": "K0002"
  }, {
    "name": "created",
    "value": "2015-10-12 04:25"
  }, {
    "name": "active",
    "value": true
  }, {
    "name": "site",
    "value": "Dummy site K0002"
  }, {
    "name": "deviceMasterCategory",
    "value": "UNPROVISIONED_SIP"
  }, {
    "name": "deviceCategory",
    "value": "category"
  }]
}
Operator can see sipSecret
Given I am authenticated as Operator C0002
and there is a XCAPI Device with ID device123 and with concurrent lines set to 12
and it has sipSecret set to kSIzxm76EE2
and with useSiteOptionsFromSite set to false
which has been created at 2015-10-12 04:25 When I send /api/customers/K0002/devices/xcapi/device123
Then I should receive HTTP/1.1 200 OK with following body:
{
  "href": "/api/customers/K0002/devices/xcapi/device123",
  "links": [{
    "rel": "deviceType",
    "href": "/api/customers/K0002/device-types/XCAPI"
  }, {
    "rel": "site",
    "href": "/api/customers/K0002/sites/1"
  }, {
    "rel": "customer",
    "href": "/api/customers/K0002"
  }, {
    "rel": "activation",
    "href": "/api/customers/K0002/devices/xcapi/device123/activate"
  }, {
    "rel": "siteOptions",
    "href": "/api/customers/K0002/devices/xcapi/device123/site-options"
  }],
  "data": [{
    "name": "uniqueIdentifier",
    "value": "device123"
  }, {
    "name": "concurrentLines",
    "value": 12
  }, {
    "name": "suppressLineno",
    "value": "DEFAULT"
  }, {
    "name": "useSiteOptionsFromSite",
    "value": false
  }, {
    "name": "deviceType",
    "value": "XCAPI"
  }, {
    "name": "deviceId",
    "value": "device123"
  }, {
    "name": "extension",
    "value": ""
  }, {
    "name": "sipUsername",
    "value": "K0002"
  }, {
    "name": "sipSecret",
    "value": "kSIzxm76EE2"
  }, {
    "name": "created",
    "value": "2015-10-12 04:25"
  }, {
    "name": "active",
    "value": true
  }, {
    "name": "site",
    "value": "Dummy site K0002"
  }, {
    "name": "deviceMasterCategory",
    "value": "UNPROVISIONED_SIP"
  }, {
    "name": "deviceCategory",
    "value": "category"
  }]
}
System Integrator cannot access XCAPI Device of Customer that does not belong to him
Given I am authenticated as System Integrator S0002
When I send /api/customers/K0003/devices/xcapi/device123
Then I should receive HTTP/1.1 403 Forbidden
with following body
{
  "title": "Access forbidden",
  "detail": "Access denied to [Customer] with id [K0003]",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}
Operator cannot access XCAPI Device of Customer that does not belong to him
Given I am authenticated as Operator C0002
When I send /api/customers/K0003/devices/xcapi/device123
Then I should receive HTTP/1.1 403 Forbidden
with following body
{
  "title": "Access forbidden",
  "detail": "Access denied to [Customer] with id [K0003]",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}