Api >

Service Portal REST API

GET returns requested Base Device's free ports
Given I am authenticated as K0002
And there is a Base Device with MAC ABCDEF012345 and ports range from 2 to 3
When I send /api/customers/K0002/devices/base/ABCDEF012345/free-ports
Then I should receive HTTP/1.1 200 OK with following body:
{
  "href": "/api/customers/K0002/devices/base/ABCDEF012345/free-ports?_offset=0&_pagesize=16",
  "offset": 0,
  "total": 2,
  "size": 2,
  "items": [{
    "href": "/api/customers/K0002/devices/base/ABCDEF012345/handsets/Port2",
    "data": [{
      "name": "port",
      "value": "Port2"
    }]
  }, {
    "href": "/api/customers/K0002/devices/base/ABCDEF012345/handsets/Port3",
    "data": [{
      "name": "port",
      "value": "Port3"
    }]
  }]
}
GET returns 404 if Base Device requires IPEI
Given I am authenticated as K0002
And there is a Base Device of category Kirk with MAC ABCDEF012345 and Port Type IPEI
When I send /api/customers/K0002/devices/base/ABCDEF012345/free-ports
Then I should receive HTTP/1.1 404 Not Found with following body:
{
  "title": "Free ports not available for IPEI",
  "detail": "Free ports are not available for IPEI device ABCDEF012345",
  "described_by": "http://api.nfon.net/probs/free-ports-not-available-for-ipei"
}
GET fails meaningfully if requested Base Device does not exist
Given I am authenticated as K0002
And there is no Base Device with id ABCDEF012345
When I send /api/customers/K0002/devices/base/ABCDEF012345/free-ports
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"
}
GET returns requested Base Device's free ports when some ports are already taken
Given I am authenticated as K0002
And there is a Base Device with MAC ABCDEF012345 and ports range from 0 to 1
that has a Handset with port Port0
When I send /api/customers/K0002/devices/base/ABCDEF012345/free-ports
Then I should receive HTTP/1.1 200 OK with following body:
{
  "href": "/api/customers/K0002/devices/base/ABCDEF012345/free-ports?_offset=0&_pagesize=16",
  "offset": 0,
  "total": 1,
  "size": 1,
  "items": [{
    "href": "/api/customers/K0002/devices/base/ABCDEF012345/handsets/Port1",
    "data": [{
      "name": "port",
      "value": "Port1"
    }]
  }]
}
Customer cannot GET other Customer Base Device's free ports
Given I am authenticated as K0003
And there is a Base Device with MAC ABCDEF012345 and ports range from 2 to 3
When I send /api/customers/K0002/devices/base/ABCDEF012345/free-ports
Then I should receive HTTP/1.1 403 Forbidden with following body:
{
  "title": "Access forbidden",
  "detail": "Access denied to [Customer] with id [K0002]",
  "described_by": "http://api.nfon.net/probs/invalid-authorization"
}
Cannot read data for missing Customer
Given I am authenticated as Admin
When I send /api/customers/K0404/devices/base/ABCDEF012345/free-ports
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"
}
System Integrator cannot access Free Ports of Customer that does not belong to him
Given I am authenticated as System Integrator S0002
When I send /api/customers/K0003/devices/base/ABCDEF012345/free-ports
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 Free Ports of Customer that does not belong to him
Given I am authenticated as Operator C0002
When I send /api/customers/K0003/devices/base/ABCDEF012345/free-ports
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"
}