Api >

Service Portal REST API

Should get an IVR Service
Given I am authenticated as Customer K0002
And there is a PhoneExtension with
  • display name phone extension name
  • extension number 1000
  • and id 1010
And there is a VirtualFaxExtension with
  • display name virtual fax name
  • extension number 1100
  • and id 1110
And there is a VoiceMail with
  • service number 1200
  • display name voicemail service name
  • extension number 5200
  • and id 1210
And there is a IvrService with
  • service number 1300
  • display name ivr name
  • extension number 5300
  • and id 1310
And there is a GroupService with
  • service number 1400
  • display name group name
  • extension number 5400
  • and id 1410
And there is a QueueService with
  • service number 1500
  • display name queue name
  • extension number 5500
  • and id 1510
And there is a SkillService with
  • service number 1600
  • display name skill name
  • extension number 5600
  • and id 1610
And there is a TimeControlService with
  • service number 1700
  • display name time control name
  • extension number 5700
  • and id 1710
And there is a ConferenceService with
  • service number 1800
  • display name conference name
  • extension number 5800
  • and id 1810
When I send /api/customers/K0002/targets/ivr-services/available-destinations-on-timeout
Then the response code should be equal HTTP/1.1 200 OK And the response:
{
  "href": "/api/customers/K0002/targets/ivr-services/available-destinations-on-timeout?_offset=0&_pagesize=16&_orderBy=extensionNumber&_order=ASC",
  "offset": 0,
  "total": 11,
  "size": 11,
  "links": [],
  "items": [{
    "href": "/api/customers/K0002/targets/BUSY",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Busy"
    }, {
      "name": "type",
      "value": "BUSY"
    }]
  }, {
    "href": "/api/customers/K0002/targets/REPEAT",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Repeat"
    }, {
      "name": "type",
      "value": "REPEAT"
    }]
  }, {
    "href": "/api/customers/K0002/targets/HANGUP",
    "links": [],
    "data": [{
      "name": "name",
      "value": "Hang up"
    }, {
      "name": "type",
      "value": "HANG_UP"
    }]
  }, {
    "href": "/api/customers/K0002/targets/phone-extensions/1000/voice-mail",
    "links": [],
    "data": [{
      "name": "name",
      "value": "phone extension name"
    }, {
      "name": "extensionNumber",
      "value": "1000"
    }, {
      "name": "type",
      "value": "VOICEMAIL"
    }]
  }, {
    "href": "/api/customers/K0002/targets/phone-extensions/1000",
    "links": [],
    "data": [{
      "name": "name",
      "value": "phone extension name"
    }, {
      "name": "extensionNumber",
      "value": "1000"
    }, {
      "name": "type",
      "value": "PHONEEXTENSION"
    }]
  }, {
    "href": "/api/customers/K0002/targets/ivr-services/1300",
    "links": [],
    "data": [{
      "name": "name",
      "value": "ivr name"
    }, {
      "name": "extensionNumber",
      "value": "5300"
    }, {
      "name": "serviceNumber",
      "value": 1300
    }, {
      "name": "serviceCode",
      "value": "*761300"
    }, {
      "name": "type",
      "value": "IVR"
    }]
  }, {
    "href": "/api/customers/K0002/targets/group-services/1400",
    "links": [],
    "data": [{
      "name": "name",
      "value": "group name"
    }, {
      "name": "extensionNumber",
      "value": "5400"
    }, {
      "name": "serviceNumber",
      "value": 1400
    }, {
      "name": "serviceCode",
      "value": "*751400"
    }, {
      "name": "type",
      "value": "GROUP"
    }]
  }, {
    "href": "/api/customers/K0002/targets/queue-services/1500",
    "links": [],
    "data": [{
      "name": "name",
      "value": "queue name"
    }, {
      "name": "extensionNumber",
      "value": "5500"
    }, {
      "name": "serviceNumber",
      "value": 1500
    }, {
      "name": "serviceCode",
      "value": "*771500"
    }, {
      "name": "type",
      "value": "QUEUE"
    }]
  }, {
    "href": "/api/customers/K0002/targets/skill-services/1600",
    "links": [],
    "data": [{
      "name": "name",
      "value": "skill name"
    }, {
      "name": "extensionNumber",
      "value": "5600"
    }, {
      "name": "serviceNumber",
      "value": 1600
    }, {
      "name": "serviceCode",
      "value": "*721600"
    }, {
      "name": "type",
      "value": "SKILL"
    }]
  }, {
    "href": "/api/customers/K0002/targets/time-control-services/1700",
    "links": [],
    "data": [{
      "name": "name",
      "value": "time control name"
    }, {
      "name": "extensionNumber",
      "value": "5700"
    }, {
      "name": "serviceNumber",
      "value": 1700
    }, {
      "name": "serviceCode",
      "value": "*741700"
    }, {
      "name": "type",
      "value": "TIMECONTROL"
    }]
  }, {
    "href": "/api/customers/K0002/targets/conference-services/1800",
    "links": [],
    "data": [{
      "name": "name",
      "value": "conference name"
    }, {
      "name": "extensionNumber",
      "value": "5800"
    }, {
      "name": "serviceNumber",
      "value": 1800
    }, {
      "name": "serviceCode",
      "value": "*781800"
    }, {
      "name": "type",
      "value": "CONFERENCE"
    }]
  }]
}
Should get filtered IVR's available destinations on timeout
Given I am authenticated as Customer K0002
And there is a PhoneExtension with
  • display name phone extension name
  • extension number 1500
  • and id 900
And there is a another PhoneExtension with
  • display name another phone extension name
  • extension number 1100
  • and id 1010
And there is a IvrService with
  • service number 100
  • display name ivr name
  • extension number 5300
  • and id 1310
And there is a GroupService with
  • service number 1400
  • display name group name
  • extension number 5100
  • and id 1410
When I send /api/customers/K0002/targets/ivr-services/available-destinations-on-timeout?_q=100
Then the response code should be equal HTTP/1.1 200 OK
And the response:
{
  "href": "/api/customers/K0002/targets/ivr-services/available-destinations-on-timeout?_offset=0&_pagesize=16&_q=100&_orderBy=extensionNumber&_order=ASC",
  "offset": 0,
  "total": 4,
  "size": 4,
  "links": [],
  "items": [{
    "href": "/api/customers/K0002/targets/phone-extensions/1100/voice-mail",
    "links": [],
    "data": [{
      "name": "name",
      "value": "another phone extension name"
    }, {
      "name": "extensionNumber",
      "value": "1100"
    }, {
      "name": "type",
      "value": "VOICEMAIL"
    }]
  }, {
    "href": "/api/customers/K0002/targets/phone-extensions/1100",
    "links": [],
    "data": [{
      "name": "name",
      "value": "another phone extension name"
    }, {
      "name": "extensionNumber",
      "value": "1100"
    }, {
      "name": "type",
      "value": "PHONEEXTENSION"
    }]
  }, {
    "href": "/api/customers/K0002/targets/ivr-services/100",
    "links": [],
    "data": [{
      "name": "name",
      "value": "ivr name"
    }, {
      "name": "extensionNumber",
      "value": "5300"
    }, {
      "name": "serviceNumber",
      "value": 100
    }, {
      "name": "serviceCode",
      "value": "*760100"
    }, {
      "name": "type",
      "value": "IVR"
    }]
  }, {
    "href": "/api/customers/K0002/targets/group-services/1400",
    "links": [],
    "data": [{
      "name": "name",
      "value": "group name"
    }, {
      "name": "extensionNumber",
      "value": "5100"
    }, {
      "name": "serviceNumber",
      "value": 1400
    }, {
      "name": "serviceCode",
      "value": "*751400"
    }, {
      "name": "type",
      "value": "GROUP"
    }]
  }]
}
Missing Customer
Given I am authenticated as Admin
When I send /api/customers/K404/targets/ivr-services/available-destinations-on-timeout
Then I should receive HTTP/1.1 404 Not Found
with following body:
{
  "title": "Customer not found",
  "detail": "Customer with identifier K404 has not been found",
  "described_by": "http://api.nfon.net/probs/customer-not-found"
}
Customer should not be able to GET another Customer's IVR's Available Destinations On Timeout
Given I am authenticated as Customer K0003
When I send /api/customers/K0002/targets/ivr-services/available-destinations-on-timeout
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"
}
System Integrator should not be able to retrieve IVR's Available Destinations On Timeout 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/available-destinations-on-timeout
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 should not be able to retrieve IVR's Available Destinations On Timeout for Customer, that does not belong to him
Given I am authenticated as Operator C0002
When I send /api/customers/K0003/targets/ivr-services/available-destinations-on-timeout
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"
}