Skip to content

Instantly share code, notes, and snippets.

@blakmatrix
Created June 26, 2012 02:32
Show Gist options
  • Select an option

  • Save blakmatrix/2992902 to your computer and use it in GitHub Desktop.

Select an option

Save blakmatrix/2992902 to your computer and use it in GitHub Desktop.
/*
* users.js: Client for the zendesk API.
*
*
*/
var util = require('util'),
Client = require('./client').Client,
defaultUser = require('./helpers').defaultUser,
qs = require('querystring');
//
// ### function Users (options)
// #### @options {Object} Options for this instance
// Constructor function for the Users resource responsible
// with Zendesks's Users API
//
var Users = exports.Users = function (options) {
Client.call(this, options);
};
// Inherit from Client base object
util.inherits(Users, Client);
Users.prototype.auth = function (callback) {
this.request('GET', ['users', 'me.json'], callback, function (res, result) {
callback(null, result.user.verified);
});
};
Users.prototype.list = function (callback) {
this.request('GET', ['users.json'], callback, function (res, result) {
callback(null, result);
});
};
Users.prototype.listByGroup = function (id, callback) {
this.request('GET', ['groups', id, 'users.json'], callback, function (res, result) {
callback(null, result);
});
};
Users.prototype.listByOrganization = function (id, callback) {
this.request('GET', ['organizations', id, 'users.json'], callback, function (res, result) {
callback(null, result);
});
};
Users.prototype.show = function (id, callback) {
this.request('GET', ['users', id.toString() + '.json'], callback, function (res, result) {
callback(null, result);
});
};
Users.prototype.create = function (user, callback) {
this.request('POST', ['users.json'], user, callback, function (res, result) {
callback(null, result);
});
};
Users.prototype.createMany = function (users, callback) {
this.request('POST', ['users', 'create_many.json'], users, callback, function (res, result) {
callback(null, result);
});
};
Users.prototype.update = function (id, user, callback) {
this.request('PUT', ['users', id.toString() + '.json'], user, callback, function (res, result) {
callback(null, result);
});
};
Users.prototype.suspend = function (id, callback) {
this.request('PUT', ['users', id.toString() + '.json'], JSON.stringify({"user": {"suspended": true} }), callback, function (res, result) {
callback(null, result);
});
};
Users.prototype.delete = function (id, callback) {
this.request('DEL', ['users', id.toString() + '.json'], callback, function (res, result) {
callback(null, result);
});
};
Users.prototype.search = function (query, callback) {
this.request('GET', ['users', 'search.json' + qs.stringify(query) ], callback, function (res, result) {
callback(null, result);
});
};
Users.prototype.me = function (callback) {
this.request('GET', ['users', 'me.json'], callback, function (res, result) {
callback(null, result);
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment