Comparing version 1.1.0 to 2.0.0
@@ -56,9 +56,8 @@ 'use strict'; | ||
if (!userId) return callback(new Error(utils.i18n.conversations.userId)); | ||
var conversationUUID = null; | ||
if (typeof conversationId === 'function') callback = conversationId; | ||
else conversationUUID = utils.toUUID(conversationId); | ||
utils.debug('Conversation getFromUser: ' + userId + ', ' + conversationUUID); | ||
conversationId = utils.toUUID(conversationId); | ||
if (!conversationId) return callback(new Error(utils.i18n.conversations.id)); | ||
utils.debug('Conversation getFromUser: ' + userId + ', ' + conversationId); | ||
request.get({ | ||
path: '/users/' + querystring.escape(userId) + '/conversations' + (conversationUUID ? '/' + conversationUUID : '') | ||
path: '/users/' + querystring.escape(userId) + '/conversations/' + conversationId | ||
}, callback); | ||
@@ -68,2 +67,22 @@ }, | ||
/** | ||
* Retrieve all conversations from user | ||
* | ||
* @param {String} userId User ID | ||
* @param {String} [params] Query parameters | ||
* @param {Function} callback Callback function | ||
*/ | ||
getAllFromUser: function(userId, params, callback) { | ||
if (!userId) return callback(new Error(utils.i18n.conversations.userId)); | ||
utils.debug('Conversation getAllFromUser: ' + userId); | ||
var queryParams = ''; | ||
if (typeof params === 'function') callback = params; | ||
else queryParams = '?' + querystring.stringify(params); | ||
request.get({ | ||
path: '/users/' + querystring.escape(userId) + '/conversations' + queryParams | ||
}, callback); | ||
}, | ||
/** | ||
* Edit a conversation | ||
@@ -70,0 +89,0 @@ * |
@@ -41,4 +41,5 @@ 'use strict'; | ||
*/ | ||
sendTextFromUser: fromUser, | ||
sendTexFromUser: fromUser, // Deprecated | ||
sendTextFromUser: function(conversationId, userId, text, callback) { | ||
send(null, conversationId, utils.messageText('user_id', userId, text), callback); | ||
}, | ||
@@ -53,4 +54,5 @@ /** | ||
*/ | ||
sendTextFromName: fromName, | ||
sendTexFromName: fromName, // Deprecated | ||
sendTextFromName: function(conversationId, name, text, callback) { | ||
send(null, conversationId, utils.messageText('name', name, text), callback); | ||
}, | ||
@@ -61,5 +63,6 @@ /** | ||
* @param {String} conversationId Conversation ID | ||
* @param {String} [params] Query parameters | ||
* @param {Function} callback Callback function | ||
*/ | ||
getAll: function(conversationId, callback) { | ||
getAll: function(conversationId, params, callback) { | ||
conversationId = utils.toUUID(conversationId); | ||
@@ -69,5 +72,9 @@ if (!conversationId) return callback(new Error(utils.i18n.messages.cid)); | ||
var queryParams = ''; | ||
if (typeof params === 'function') callback = params; | ||
else queryParams = '?' + querystring.stringify(params); | ||
request.get({ | ||
path: '/conversations/' + conversationId + '/messages' | ||
}, callback || utils.nop); | ||
path: '/conversations/' + conversationId + '/messages' + queryParams | ||
}, callback); | ||
}, | ||
@@ -80,5 +87,6 @@ | ||
* @param {String} conversationId Conversation ID | ||
* @param {String} [params] Query parameters | ||
* @param {Function} callback Callback function | ||
*/ | ||
getAllFromUser: function(userId, conversationId, callback) { | ||
getAllFromUser: function(userId, conversationId, params, callback) { | ||
if (!userId) return callback(new Error(utils.i18n.messages.userId)); | ||
@@ -89,5 +97,9 @@ conversationId = utils.toUUID(conversationId); | ||
var queryParams = ''; | ||
if (typeof params === 'function') callback = params; | ||
else queryParams = '?' + querystring.stringify(params); | ||
request.get({ | ||
path: '/users/' + querystring.escape(userId) + '/conversations/' + conversationId + '/messages' | ||
}, callback || utils.nop); | ||
path: '/users/' + querystring.escape(userId) + '/conversations/' + conversationId + '/messages' + queryParams | ||
}, callback); | ||
}, | ||
@@ -110,13 +122,6 @@ | ||
path: '/users/' + querystring.escape(userId) + '/messages/' + messageId | ||
}, callback || utils.nop); | ||
}, callback); | ||
} | ||
}; | ||
function fromUser(conversationId, userId, text, callback) { | ||
send(null, conversationId, utils.messageText('user_id', userId, text), callback); | ||
} | ||
function fromName(conversationId, name, text, callback) { | ||
send(null, conversationId, utils.messageText('name', name, text), callback); | ||
} | ||
function send(dedupe, conversationId, body, callback) { | ||
@@ -123,0 +128,0 @@ if (dedupe !== null && !utils.toUUID(dedupe)) return callback(new Error(utils.i18n.dedupe)); |
{ | ||
"name": "layer-api", | ||
"version": "1.1.0", | ||
"version": "2.0.0", | ||
"description": "Node.js library, which provides a wrapper for the Layer Platform API", | ||
@@ -23,8 +23,8 @@ "publishConfig": { | ||
"mocha": "^2.4.5", | ||
"nock": "^2.18.2", | ||
"should": "^7.1.1" | ||
"nock": "^7.2.2", | ||
"should": "^8.2.2" | ||
}, | ||
"dependencies": { | ||
"bluebird": "^2.10.2" | ||
"bluebird": "^3.3.2" | ||
} | ||
} |
@@ -112,5 +112,5 @@ # Layer API for node.js | ||
### conversations.getFromUser(uid, [cid], callback) | ||
### conversations.getFromUser(uid, cid, callback) | ||
[Retrieve](https://developer.layer.com/docs/platform#retrieve-a-conversation) an existing Conversation by providing user ID and optional specific conversation ID. Response `body` will result in conversation object representation. | ||
[Retrieve](https://developer.layer.com/docs/platform#retrieve-a-conversation) an existing Conversation by providing user ID and conversation ID. Response `body` will result in conversation object representation. | ||
@@ -120,3 +120,3 @@ ##### Arguments | ||
- `uid` - User ID | ||
- `cid` - *Optional* Conversation ID | ||
- `cid` - Conversation ID | ||
- `callback(err, res)` - Callback function returns an error and response objects | ||
@@ -137,2 +137,30 @@ | ||
### conversations.getAllFromUser(uid, [params], callback) | ||
[Retrieve](https://developer.layer.com/docs/platform#retrieve-a-conversation) all Conversations by providing user ID. Response `body` will result in an array of conversation objects. | ||
##### Arguments | ||
- `uid` - User ID | ||
- `params` - *Optional* Query parameters can contain `page_size`, `from_id` and `sort_by` | ||
- `callback(err, res)` - Callback function returns an error and response objects | ||
##### Examples | ||
```javascript | ||
var params = { | ||
page_size: 50, | ||
from_id: cid, | ||
sort_by: 'last_message' // `created_at` or `last_message` | ||
}; | ||
layer.conversations.getAllFromUser(uid, params, function(err, res) { | ||
if (err) return console.error(err); | ||
// conversation data | ||
var conversation = res.body; | ||
}); | ||
``` | ||
--------------------------------------- | ||
### conversations.edit(cid, operations, [callback]) | ||
@@ -152,3 +180,3 @@ | ||
var operations = [ | ||
{"operation": "add", "property": "participants", "value": "user1"} | ||
{operation: 'add', property: 'participants', value: 'user1'} | ||
]; | ||
@@ -251,3 +279,3 @@ layer.conversations.edit(cid, operations, function(err, res) { | ||
### messages.getAll(cid, [callback]) | ||
### messages.getAll(cid, [params], callback) | ||
@@ -259,2 +287,3 @@ [Retrieve](https://developer.layer.com/docs/platform#retrieving-messages) all messages in a conversation by providing `cid`. Response `body` will result in array of messages. | ||
- `cid` - Conversation ID | ||
- `params` - *Optional* Query parameters can contain `page_size`, `from_id` and `sort_by` | ||
- `callback(err, res)` - Callback function returns an error and response objects | ||
@@ -265,3 +294,8 @@ | ||
```javascript | ||
layer.messages.getAll(cid, function(err, res) { | ||
var params = { | ||
page_size: 50, | ||
from_id: messageId, | ||
sort_by: 'last_message' // `created_at` or `last_message` | ||
}; | ||
layer.messages.getAll(cid, params, function(err, res) { | ||
if (err) return console.error(err); | ||
@@ -273,3 +307,3 @@ | ||
### messages.getAllFromUser(userId, cid, [callback]) | ||
### messages.getAllFromUser(userId, cid, [params], callback) | ||
@@ -282,2 +316,3 @@ Retrieve all messages in a conversation from a specific user by providing `userId` and `cid`. Response `body` will result in array of messages. | ||
- `cid` - Conversation ID | ||
- `params` - *Optional* Query parameters can contain `page_size`, `from_id` and `sort_by` | ||
- `callback(err, res)` - Callback function returns an error and response objects | ||
@@ -284,0 +319,0 @@ |
@@ -110,4 +110,22 @@ /*globals describe it*/ | ||
describe('Retrieving a conversation by user ID', function() { | ||
describe('Retrieving a conversation by user ID and conversation ID', function() { | ||
nock('https://api.layer.com') | ||
.get('/apps/' + fixtures.appId + '/users/' + fixtures.conversations.userid + '/conversations/' + fixtures.conversations.uuid) | ||
.reply(200, fixtures.conversations.success); | ||
it('should return a conversation object', function(done) { | ||
layerAPI.conversations.getFromUser(fixtures.conversations.userid, fixtures.conversations.uuid, function(err, res) { | ||
should.not.exist(err); | ||
should.exist(res); | ||
res.status.should.be.eql(200); | ||
res.body.should.have.properties(fixtures.conversations.success); | ||
done(err); | ||
}); | ||
}); | ||
}); | ||
describe('Retrieving all conversations by user ID', function() { | ||
nock('https://api.layer.com') | ||
.get('/apps/' + fixtures.appId + '/users/' + fixtures.conversations.userid + '/conversations') | ||
@@ -117,3 +135,3 @@ .reply(200, fixtures.conversations.success); | ||
it('should return a conversation object', function(done) { | ||
layerAPI.conversations.getFromUser(fixtures.conversations.userid, function(err, res) { | ||
layerAPI.conversations.getAllFromUser(fixtures.conversations.userid, function(err, res) { | ||
should.not.exist(err); | ||
@@ -130,9 +148,19 @@ should.exist(res); | ||
describe('Retrieving a conversation by user ID and conversation ID', function() { | ||
describe('Retrieving all conversations by user ID with query parameters', function() { | ||
nock('https://api.layer.com') | ||
.get('/apps/' + fixtures.appId + '/users/' + fixtures.conversations.userid + '/conversations/' + fixtures.conversations.uuid) | ||
.get('/apps/' + fixtures.appId + '/users/' + fixtures.conversations.userid + '/conversations') | ||
.query({ | ||
page_size: 50, | ||
from_id: fixtures.conversations.uuid, | ||
sort_by: 'last_message' | ||
}) | ||
.reply(200, fixtures.conversations.success); | ||
it('should return a conversation object', function(done) { | ||
layerAPI.conversations.getFromUser(fixtures.conversations.userid, fixtures.conversations.uuid, function(err, res) { | ||
var params = { | ||
page_size: 50, | ||
from_id: fixtures.conversations.uuid, | ||
sort_by: 'last_message' | ||
}; | ||
layerAPI.conversations.getAllFromUser(fixtures.conversations.userid, params, function(err, res) { | ||
should.not.exist(err); | ||
@@ -139,0 +167,0 @@ should.exist(res); |
@@ -154,2 +154,29 @@ /*globals describe it*/ | ||
describe('Retrieving all messages in a conversation from a user with query parameters', function() { | ||
nock('https://api.layer.com') | ||
.get('/apps/' + fixtures.appId + '/users/12345/conversations/' + fixtures.conversations.uuid + '/messages') | ||
.query({ | ||
page_size: 50, | ||
from_id: fixtures.conversations.uuid, | ||
sort_by: 'last_message' | ||
}) | ||
.reply(200, [fixtures.messages.success]); | ||
it('should return array of messages', function(done) { | ||
var params = { | ||
page_size: 50, | ||
from_id: fixtures.conversations.uuid, | ||
sort_by: 'last_message' | ||
}; | ||
layerAPI.messages.getAllFromUser(12345, fixtures.conversations.uuid, params, function(err, res) { | ||
should.not.exist(err); | ||
should.exist(res); | ||
res.body.length.should.be.eql(1); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
describe('Retrieving messages in a conversation', function() { | ||
@@ -172,2 +199,29 @@ nock('https://api.layer.com') | ||
describe('Retrieving messages in a conversation with query parameters', function() { | ||
nock('https://api.layer.com') | ||
.get('/apps/' + fixtures.appId + '/conversations/' + fixtures.conversations.uuid + '/messages') | ||
.query({ | ||
page_size: 50, | ||
from_id: fixtures.conversations.uuid, | ||
sort_by: 'last_message' | ||
}) | ||
.reply(200, [fixtures.messages.success]); | ||
it('should return array of messages', function(done) { | ||
var params = { | ||
page_size: 50, | ||
from_id: fixtures.conversations.uuid, | ||
sort_by: 'last_message' | ||
}; | ||
layerAPI.messages.getAll(fixtures.conversations.uuid, params, function(err, res) { | ||
should.not.exist(err); | ||
should.exist(res); | ||
res.body.length.should.be.eql(1); | ||
done(); | ||
}); | ||
}); | ||
}); | ||
describe('Retrieving a messages in a conversation from a user', function() { | ||
@@ -174,0 +228,0 @@ nock('https://api.layer.com') |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
88771
1751
467
+ Addedbluebird@3.7.2(transitive)
- Removedbluebird@2.11.0(transitive)
Updatedbluebird@^3.3.2