mirror of
https://github.com/wahyd4/cdnjs.git
synced 2026-08-11 05:46:04 +10:00
247 lines
6.9 KiB
JavaScript
247 lines
6.9 KiB
JavaScript
// Generated by CoffeeScript 1.7.1
|
|
(function() {
|
|
var HipChatClient, exports, https, querystring, _;
|
|
|
|
https = require('https');
|
|
|
|
querystring = require('querystring');
|
|
|
|
_ = require('underscore');
|
|
|
|
HipChatClient = (function() {
|
|
HipChatClient.prototype.host = 'api.hipchat.com';
|
|
|
|
function HipChatClient(apikey, agent) {
|
|
this.apikey = apikey;
|
|
this.agent = agent;
|
|
this.rateLimits = {
|
|
limit: 0,
|
|
remaining: 0,
|
|
reset: 0
|
|
};
|
|
}
|
|
|
|
HipChatClient.prototype.createRoom = function(params, callback) {
|
|
var data, options, _ref;
|
|
data = {
|
|
name: params.name,
|
|
owner_user_id: params.owner_user_id,
|
|
privacy: (_ref = params.privacy) != null ? _ref : 'public',
|
|
topic: params.topic,
|
|
guest_access: params.guest_access ? 1 : 0
|
|
};
|
|
options = this._prepareOptions({
|
|
method: 'post',
|
|
path: '/v1/rooms/create',
|
|
query: data
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.listRooms = function(callback) {
|
|
var options;
|
|
options = this._prepareOptions({
|
|
method: 'get',
|
|
path: '/v1/rooms/list'
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.showRoom = function(room, callback) {
|
|
var options;
|
|
options = this._prepareOptions({
|
|
method: 'get',
|
|
path: '/v1/rooms/show',
|
|
query: {
|
|
room_id: room
|
|
}
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.deleteRoom = function(room, callback) {
|
|
var options;
|
|
options = this._prepareOptions({
|
|
method: 'post',
|
|
path: '/v1/rooms/delete',
|
|
query: {
|
|
room_id: room
|
|
}
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.getHistory = function(params, callback) {
|
|
var data, options, _ref, _ref1;
|
|
data = {
|
|
room_id: params.room_id || params.room,
|
|
date: (_ref = params.date) != null ? _ref : 'recent',
|
|
timezone: (_ref1 = params.timezone) != null ? _ref1 : 'UTC'
|
|
};
|
|
options = this._prepareOptions({
|
|
method: 'get',
|
|
path: '/v1/rooms/history',
|
|
query: data
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.postMessage = function(params, callback) {
|
|
var data, options, _ref, _ref1, _ref2;
|
|
data = {
|
|
room_id: params.room_id || params.room,
|
|
from: (_ref = params.from) != null ? _ref : 'node-hipchat',
|
|
message: params.message,
|
|
notify: params.notify ? 1 : 0,
|
|
color: (_ref1 = params.color) != null ? _ref1 : 'yellow',
|
|
message_format: (_ref2 = params.message_format) != null ? _ref2 : 'html'
|
|
};
|
|
options = this._prepareOptions({
|
|
method: 'post',
|
|
path: '/v1/rooms/message',
|
|
data: data
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.showUser = function(user_id, callback) {
|
|
var options;
|
|
options = this._prepareOptions({
|
|
method: 'get',
|
|
path: '/v1/users/show',
|
|
query: {
|
|
user_id: user_id
|
|
}
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.listUsers = function(callback) {
|
|
var options;
|
|
options = this._prepareOptions({
|
|
method: 'get',
|
|
path: '/v1/users/list'
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.deleteUser = function(user_id, callback) {
|
|
var options;
|
|
options = this._prepareOptions({
|
|
method: 'post',
|
|
path: '/v1/users/delete',
|
|
query: {
|
|
user_id: user_id
|
|
}
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.createUser = function(params, callback) {
|
|
var data, options, _ref;
|
|
data = {
|
|
email: params.email,
|
|
name: params.name,
|
|
mention_name: params.name.replace(/\s+/g, ''),
|
|
title: params.title,
|
|
is_group_admin: params.is_group_admin ? 1 : 0,
|
|
password: params.password,
|
|
timezone: (_ref = params.timezone) != null ? _ref : 'UTC'
|
|
};
|
|
options = this._prepareOptions({
|
|
method: 'post',
|
|
path: '/v1/users/create',
|
|
data: data
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.updateUser = function(params, callback) {
|
|
var data, options, _ref;
|
|
data = {
|
|
user_id: params.user_id,
|
|
email: params.email,
|
|
name: params.name,
|
|
mention_name: params.name.replace(/\s+/g, ''),
|
|
title: params.title,
|
|
is_group_admin: params.is_group_admin ? 1 : 0,
|
|
password: params.password,
|
|
timezone: (_ref = params.timezone) != null ? _ref : 'UTC'
|
|
};
|
|
options = this._prepareOptions({
|
|
method: 'post',
|
|
path: '/v1/users/update',
|
|
data: data
|
|
});
|
|
return this._sendRequest(options, callback);
|
|
};
|
|
|
|
HipChatClient.prototype.getRateLimits = function() {
|
|
return this.rateLimits;
|
|
};
|
|
|
|
HipChatClient.prototype._prepareOptions = function(op) {
|
|
op.host = this.host;
|
|
if (op.query == null) {
|
|
op.query = {};
|
|
}
|
|
op.query['auth_token'] = this.apikey;
|
|
op.query = querystring.stringify(op.query);
|
|
op.path += '?' + op.query;
|
|
if (op.method === 'post' && (op.data != null)) {
|
|
op.data = querystring.stringify(op.data);
|
|
if (op.headers == null) {
|
|
op.headers = {};
|
|
}
|
|
op.headers['Content-Type'] = 'application/x-www-form-urlencoded';
|
|
op.headers['Content-Length'] = op.data.length;
|
|
}
|
|
if (this.agent) {
|
|
op.agent = this.agent;
|
|
}
|
|
return op;
|
|
};
|
|
|
|
HipChatClient.prototype._sendRequest = function(options, callback) {
|
|
var req;
|
|
req = https.request(options);
|
|
req.on('response', (function(_this) {
|
|
return function(res) {
|
|
var buffer;
|
|
buffer = '';
|
|
res.on('data', function(chunk) {
|
|
return buffer += chunk;
|
|
});
|
|
return res.on('end', function() {
|
|
var headers, value;
|
|
headers = res.headers;
|
|
_this.rateLimits = {
|
|
limit: headers['x-ratelimit-limit'],
|
|
remaining: headers['x-ratelimit-remaining'],
|
|
reset: headers['x-ratelimit-reset']
|
|
};
|
|
if (callback != null) {
|
|
if (res.statusCode === 200) {
|
|
value = options.json === false ? buffer : JSON.parse(buffer);
|
|
return callback(value, null);
|
|
} else {
|
|
return callback(null, buffer);
|
|
}
|
|
}
|
|
});
|
|
};
|
|
})(this));
|
|
if (options.data != null) {
|
|
req.write('' + options.data);
|
|
}
|
|
return req.end();
|
|
};
|
|
|
|
return HipChatClient;
|
|
|
|
})();
|
|
|
|
exports = module.exports = HipChatClient;
|
|
|
|
}).call(this);
|