tender
Version:
Tender API client
134 lines (108 loc) • 3.91 kB
JavaScript
// Generated by CoffeeScript 1.4.0
var Client, fs, path, resources;
fs = require('fs');
path = require('path');
resources = require('./resources');
module.exports = Client = (function() {
function Client(options) {
this.options = options;
this.discussions = new resources.discussions(this);
this.queues = new resources.queues(this);
this.categories = new resources.categories(this);
this.users = new resources.users(this);
this.loadConfig();
}
Client.prototype.loadConfig = function() {
var config, configPath, _ref, _ref1, _ref2, _ref3;
config = {};
configPath = path.join(process.cwd(), 'tender_config.json');
if (fs.existsSync(configPath)) {
config = JSON.parse(fs.readFileSync(configPath));
}
this.subdomain = ((_ref = this.options) != null ? _ref.subdomain : void 0) || config.subdomain;
this.token = ((_ref1 = this.options) != null ? _ref1.token : void 0) || config.token;
this.username = ((_ref2 = this.options) != null ? _ref2.username : void 0) || config.username;
this.password = ((_ref3 = this.options) != null ? _ref3.password : void 0) || config.password;
this.testData = config.testData;
return this.baseURI = "https://api.tenderapp.com/" + this.subdomain;
};
Client.prototype.getDiscussions = function(options, callback) {
return this.discussions.get(options, callback);
};
Client.prototype.showDiscussion = function(options, callback) {
return this.discussions.show(options, callback);
};
Client.prototype.createDiscussion = function(options, callback) {
return this.discussions.post(options, callback);
};
Client.prototype.replyDiscussion = function(options, callback) {
return this.discussions.reply(options, callback);
};
Client.prototype.actionDiscussion = function(options, callback) {
return this.discussions.action(options, callback);
};
Client.prototype.toggleDiscussion = function(options, callback) {
return this.discussions.action({
action: 'toggle',
id: options.id
}, callback);
};
Client.prototype.resolveDiscussion = function(options, callback) {
return this.discussions.action({
action: 'resolve',
id: options.id
}, callback);
};
Client.prototype.reopenDiscussion = function(options, callback) {
return this.discussions.action({
action: 'unresolve',
id: options.id
}, callback);
};
Client.prototype.acknowledgeDiscussion = function(options, callback) {
return this.discussions.action({
action: 'acknowledge',
id: options.id
}, callback);
};
Client.prototype.restoreDiscussion = function(options, callback) {
return this.discussions.action({
action: 'restore',
id: options.id
}, callback);
};
Client.prototype.categorizeDiscussion = function(options, callback) {
return this.discussions.action({
action: 'changeCategory',
id: options.id,
category: options.category
}, callback);
};
Client.prototype.queueDiscussion = function(options, callback) {
return this.discussions.action({
action: 'queue',
id: options.id,
queue: options.queue
}, callback);
};
Client.prototype.unqueueDiscussion = function(options, callback) {
return this.discussions.action({
action: 'unqueue',
id: options.id,
queue: options.queue
}, callback);
};
Client.prototype.deleteDiscussion = function(options, callback) {
return this.discussions["delete"](options, callback);
};
Client.prototype.getQueues = function(options, callback) {
return this.queues.get(options, callback);
};
Client.prototype.getCategories = function(options, callback) {
return this.categories.get(options, callback);
};
Client.prototype.getUsers = function(options, callback) {
return this.users.get(options, callback);
};
return Client;
})();