copy-cat
Version:
A standalone server to mock various communications services for push messaging, email, and sms.
359 lines (337 loc) • 8.21 kB
Markdown
### POST /v1/users/:user/messages
#### Single Message
```javascript
// Example Request
var request = require('request');
request({
method: 'POST',
url: 'https://api.catapult.inetwork.com/v1/users/a-b5h4y5x6vcw5aszyyzsmsas/messages',
auth: {
user: "a-ascc4wo4zyq7as366hxkhas",
password: "ascoslxnasalqfbtashrkxasz545jdtkrcb2zas"
},
json: {
from: "+14155791234",
to: "+19713131234",
text: "Test duder"
}
}, function (err, res, body) {
});
// On success
// 201
{
"cache-control": "no-cache",
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 21:32:25 GMT",
"location": "https://api.catapult.inetwork.com/v1/users/a-b5h4y5x6vcw5aszyyzsmsas/messages/m-lkb6bomtaz7z2rauff3h6by",
"server": "Jetty(8.1.10.v20130312)",
"content-length": "0",
"connection": "keep-alive"
}
undefined
// On missing field
// 400
{
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 21:51:40 GMT",
"server": "Jetty(8.1.10.v20130312)",
"content-length": "313",
"connection": "keep-alive"
}
{
"category": "bad-request",
"code": "missing-property",
"message": "The 'message' resource property 'text' is required but was not specified",
"details": [
{
"name": "requestMethod",
"value": "POST"
},
{
"name": "remoteAddress",
"value": "50.248.205.150"
},
{
"name": "requestPath",
"value": "users/a-b5h4y5x6vcw5aszyyzsmsas/messages"
}
]
}
// On invalid 'from', either invalid format or number not configured in app
{
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 21:52:54 GMT",
"server": "Jetty(8.1.10.v20130312)",
"content-length": "422",
"connection": "keep-alive"
}
{
"category": "authorization",
"code": "number-access-denied",
"message": "User a-b5h4y5x6vcw5aszyyzsmsas does not have permission to use number +1415579029",
"details": [
{
"name": "userId",
"value": "a-b5h4y5x6vcw5aszyyzsmsas"
},
{
"name": "number",
"value": "+1415579029"
},
{
"name": "requestMethod",
"value": "POST"
},
{
"name": "remoteAddress",
"value": "50.248.205.150"
},
{
"name": "requestPath",
"value": "users/a-b5h4y5x6vcw5aszyyzsmsas/messages"
}
]
}
// On invalid user, token, or secret
// 401
{
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 21:54:00 GMT",
"server": "Jetty(8.1.10.v20130312)",
"content-length": "322",
"connection": "keep-alive"
}
{
"category": "authorization",
"code": "access-denied",
"message": "The authenticated user does not have sufficient permissions to access this resource",
"details": [
{
"name": "requestMethod",
"value": "POST"
},
{
"name": "remoteAddress",
"value": "50.248.205.150"
},
{
"name": "requestPath",
"value": "users/a-b5h4y5x6vcw5aszyyzsmsa/messages"
}
]
}
// On text > 2048 characters
{
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 21:56:21 GMT",
"server": "Jetty(8.1.10.v20130312)",
"content-length": "290",
"connection": "keep-alive"
}
{
"category": "bad-request",
"code": "validation-error",
"message": "The message text must be 2,048 characters or less",
"details": [
{
"name": "requestMethod",
"value": "POST"
},
{
"name": "remoteAddress",
"value": "50.248.205.150"
},
{
"name": "requestPath",
"value": "users/a-b5h4y5x6vcw5aszyyzsmsas/messages"
}
]
}
```
#### Multiple Messages
```javascript
// Example Request
var request = require('request');
request({
method: 'POST',
url: 'https://api.catapult.inetwork.com/v1/users/a-b5h4y5x6vcw5aszyyzsmsas/messages',
auth: {
user: "a-ascc4wo4zyq7as366hxkhas",
password: "ascoslxnasalqfbtashrkxasz545jdtkrcb2zas"
},
json: [{
from: "+14155791234",
to: "+19713131234",
text: "Test duder"
}, {
from: "+14155791234",
to: "+19713131234",
text: "Test dudes"
}]
}, function (err, res, body) {
});
// On success
{
"cache-control": "no-cache",
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 22:03:48 GMT",
"server": "Jetty(8.1.10.v20130312)",
"content-length": "279",
"connection": "keep-alive"
}
[
{
"result": "accepted",
"location": "https://api.catapult.inetwork.com/v1/users/a-b5h4y5x6vcw5aszyyzsmsas/messages/m-krxus6bctn25q62nfklopfq"
},
{
"result": "accepted",
"location": "https://api.catapult.inetwork.com/v1/users/a-b5h4y5x6vcw5aszyyzsmsas/messages/m-lta4zvpivsm4ejnw5wytmba"
}
]
// On split success and failure
{
"cache-control": "no-cache",
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 22:06:03 GMT",
"server": "Jetty(8.1.10.v20130312)",
"content-length": "316",
"connection": "keep-alive"
}
[
{
"result": "accepted",
"location": "https://api.catapult.inetwork.com/v1/users/a-b5h4y5x6vcw5aszyyzsmsas/messages/m-gickicq52tfn2dvraggkdfa"
},
{
"result": "error",
"error": {
"category": "bad-request",
"code": "missing-property",
"message": "The 'message' resource property 'to' is required but was not specified",
"details": []
}
}
]
```
### GET /v1/users/:user/messages/:message
```javascript
// Example Request
request({
method: 'GET',
url: "https://api.catapult.inetwork.com/v1/users/a-b5h4y5x6vcw5aszyyzsmsas/messages/m-i2c5jvxizg6wn466iemkxrq",
auth: {
user: "a-ascc4wo4zyq7as366hxkhas",
password: "ascoslxnasalqfbtashrkxasz545jdtkrcb2zas"
},
json: true
}, function (err, res, body) {
});
// On success
// 200
{
"cache-control": "no-cache",
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 21:40:08 GMT",
"server": "Jetty(8.1.10.v20130312)",
"content-length": "243",
"connection": "keep-alive"
}
{
"direction": "out",
"from": "+14155791234",
"id": "m-i2c5jvxizg6wn466iemkxrq",
"messageId": "m-i2c5jvxizg6wn466iemkxrq",
"state": "sent",
"text": "Test duder",
"media": [],
"time": "2015-09-14T21:28:35Z",
"to": "+19713131234",
"skipMMSCarrierValidation": false
}
// On success, receiptRequested set to 'all'
{
"cache-control": "no-cache",
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 21:38:44 GMT",
"server": "Jetty(8.1.10.v20130312)",
"content-length": "368",
"connection": "keep-alive"
}
{
"direction": "out",
"from": "+14155791234",
"id": "m-lkb6bomtaz7z2rauff3h6by",
"messageId": "m-lkb6bomtaz7z2rauff3h6by",
"state": "sent",
"text": "Test duder",
"media": [],
"time": "2015-09-14T21:32:25Z",
"to": "+19713131234",
"skipMMSCarrierValidation": false,
"receiptRequested": "all",
"deliveryState": "delivered",
"deliveryCode": "0",
"deliveryDescription": "Message delivered to carrier"
}
// On invalid message
// 404
{
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 21:41:03 GMT",
"server": "Jetty(8.1.10.v20130312)",
"transfer-encoding": "chunked",
"connection": "keep-alive"
}
{
"category": "not-found",
"code": "message-not-found",
"message": "The message 'm-i2c5jvxizg6wn466iemkxq' could not be found",
"details": [
{
"name": "messageId",
"value": "m-i2c5jvxizg6wn466iemkxq"
},
{
"name": "requestMethod",
"value": "GET"
},
{
"name": "remoteAddress",
"value": "50.248.205.150"
},
{
"name": "requestPath",
"value": "users/a-b5h4y5x6vcw5aszyyzsmsas/messages/m-i2c5jvxizg6wn466iemkxq"
}
]
}
// On invalid user, token, or secret
// 401
{
"content-type": "application/json",
"date": "Mon, 14 Sep 2015 21:42:12 GMT",
"server": "Jetty(8.1.10.v20130312)",
"content-length": "347",
"connection": "keep-alive"
}
{
"category": "authorization",
"code": "access-denied",
"message": "The authenticated user does not have sufficient permissions to access this resource",
"details": [
{
"name": "requestMethod",
"value": "GET"
},
{
"name": "remoteAddress",
"value": "50.248.205.150"
},
{
"name": "requestPath",
"value": "users/a-b5h4y5x6vcw5aszyyzsmsa/messages/m-i2c5jvxizg6wn466iemkxrq"
}
]
}
```