Creating a Session
Creates a new session.
POST /v1/sessions
Creates/Updates a session
CoAP Options
Option | Description | Value | Required |
---|---|---|---|
URI-Path | Resource segment #1 | v1 | Yes |
URI-Path | Resource segment #2 | sessions | Yes |
Request Properties
Property | Description | Type | Required |
---|---|---|---|
number | Pager number | number | Yes |
goal | Desired target goal in seconds. | number | No |
label | Label to assign to session | string | No |
partySize | Size of party for session | number | No |
action | Action to perform on session. (i.e. page, clear, remove) | string (enum) values: page clear * remove | No |
Example Request
Keep request body compact!
When testing the API, ensure your JSON is compact and no tabs or newlines are submitted.
{ "number": 66, "goal": 60, "label": "Sarah", "partySize": 4 }
Response Properties
Statistics
Statistics are bundled in with session responses to help keep updated about the calculated results of all the sessions.
Property | Description | Type |
---|---|---|
guestsServed | Number of guests served or otherwise known as paged. | number |
percentLate | Percentage of guests that were paged after the target goal. | number |
percentOnTime | Percentage of guests that were paged within the target goal. | number |
averageTimeServed | Time in seconds of the average elapsed time before sessions were paged. | number |
numSessions | Total number of sessions that were created. | number |
Sessions
To keep consistent with retrieval, a single session will be included in an array.
Property | Description | Type |
---|---|---|
id | Unique sequential number for each session that is created. | number |
uuid | UUID v4 that is generated for each session. | number |
number | Pager number the session is bound to. | number |
partySize | The size of the party for a session. | number |
goalInSeconds | The target goal in seconds that was assigned to the session. | number |
created | Timestamp of when the session is created. | string (ISO8601) |
started | Timestamp of when the session is started. Will be the same as started | string (ISO8601) |
notified | Timestamp when the session is paged. | string (ISO8601) |
cleared | Timestamp when the session is cleared. (Will only appear for notifications) | string (ISO8601) |
label | Assigned label to a session | string | null |
state | The state of a session. | string (enum) values: started paged * cleared |
Example Response
{
"responseTypes":[
"sessions",
"statistics"
],
"globalSessionSequence":117,
"statistics":{
"guestsServed":40,
"percentLate":0,
"percentOnTime":100,
"averageTimeServed":285,
"numSessions":41
},
"sessions":[
{
"id":48,
"sessionSequence":117,
"uuid":"947fbd21-3025-45e0-922a-db28a6eab95d",
"number":66,
"partySize":4,
"goalInSeconds":60,
"created":"2018-03-15T11:55:20",
"started":"2018-03-15T11:55:20",
"label":"Sarah",
"state":"started"
}
]
}
Example Code Request
// Using node-coap (yarn add coap, npm install coap): https://github.com/mcollina/node-coap
const coap = require('coap');
// Retrieving session with number 23
let req = coap.request({
host: '10.0.1.32',
port: 5683,
pathname: '/v1/sessions',
method: 'POST',
options: {
'Content-Format': 'application/json'
}
});
req.on('response', res => {
let json = JSON.parse(res.payload.toString('utf-8'));
if (res.code === '2.01') { // Success
// Session created
console.log(json.sessions[0]);
} else if (res.code === '2.00') {
// Already exists...
} else {
// Some other error.
console.error(json);
}
});
req.write(JSON.stringify({
number: 66,
label: 'Yuri.',
partySize: 3,
goal: 200
});
// Send request
req.end();
Updated over 6 years ago