layer-api
Version:
Node.js library, which provides a wrapper for the Layer Platform API
104 lines (90 loc) • 3.19 kB
JavaScript
;
/**
* Conversations resource
* @module resources/conversations
*/
var querystring = require('querystring');
var utils = require('../utils');
module.exports = function(request) {
return {
/**
* Create a new Identity. NOTE: The display_name property is required.
*
* @param {String} userId User ID
* @param {Object} properties Hash of properties to update
* @param {Function} callback Callback function
*/
create: function(userId, properties, callback) {
if (!userId) return callback(new Error(utils.i18n.identities.id));
if (!properties.display_name) return callback(new Error(utils.i18n.identities.displayName));
utils.debug('Identity create: ' + userId);
request.post({
path: '/users/' + userId + '/identity',
body: properties
}, callback || utils.nop);
},
/**
* Retrieve an Identity
*
* @param {String} userId User ID
* @param {Function} callback Callback function
*/
get: function(userId, callback) {
if (!userId) return callback(new Error(utils.i18n.identities.id));
utils.debug('Identities get: ' + userId);
request.get({
path: '/users/' + userId + '/identity'
}, callback);
},
/**
* Edit Identity properties.
*
* @param {String} userId User ID
* @param {Object} properties Hash of properties to update
* @param {Function} callback Callback function
*/
edit: function(userId, properties, callback) {
if (!userId) return callback(new Error(utils.i18n.identities.id));
utils.debug('Identity edit: ' + userId);
request.patch({
path: '/users/' + userId + '/identity',
body: Object.keys(properties).map(function(propertyName) {
return {
operation: 'set',
property: propertyName,
value: properties[propertyName]
};
})
}, callback || utils.nop);
},
/**
* Replace all Identity properties. NOTE: The display_name property is required.
*
* @param {String} userId User ID
* @param {Object} properties Hash of properties to update
* @param {Function} callback Callback function
*/
replace: function(userId, properties, callback) {
if (!userId) return callback(new Error(utils.i18n.identities.id));
if (!properties.display_name) return callback(new Error(utils.i18n.identities.displayName));
utils.debug('Identity replace: ' + userId);
request.put({
path: '/users/' + userId + '/identity',
body: properties
}, callback || utils.nop);
},
/**
* Delete an Identity
*
* @param {String} userId User ID
* @param {Function} callback Callback function
*/
delete: function(userId, callback) {
if (!userId) return callback(new Error(utils.i18n.identities.id));
utils.debug('Identity delete: ' + userId);
request.delete({
path: '/users/' + userId + '/identity'
}, callback || utils.nop);
}
};
};