Files

96 lines
2.3 KiB
JavaScript

'use strict';
// var debug = require('debug')('pinterest:pinterest-node-api-index');
pinterest.DEFAULT_HOST = 'api.pinterest.com';
pinterest.DEFAULT_PORT = '443';
pinterest.DEFAULT_BASE_PATH = '/';
pinterest.DEFAULT_RESPONSE_FORMAT = '.json';
pinterest.DEFAULT_API_VERSION = null;
// Use node's default timeout:
pinterest.DEFAULT_TIMEOUT = require('http').createServer().timeout;
pinterest.PACKAGE_VERSION = require('../package.json').version;
var resources = {
users: require('./resources/users'),
boards: require('./resources/boards'),
pins: require('./resources/pins'),
sections: require('./resources/sections')
};
pinterest.pinterestResource = require('./Resource');
pinterest.resources = resources;
function pinterest(clientAccessToken) {
if (!(this instanceof pinterest)) {
return new pinterest(clientAccessToken);
}
this._api = {
auth: null,
host: pinterest.DEFAULT_HOST,
port: pinterest.DEFAULT_PORT,
basePath: pinterest.DEFAULT_BASE_PATH,
version: pinterest.DEFAULT_API_VERSION,
timeout: pinterest.DEFAULT_TIMEOUT
};
this._prepResources();
this.setUserToken(clientAccessToken);
this.setResponseFormat(pinterest.DEFAULT_RESPONSE_FORMAT);
}
pinterest.prototype = {
setHost: function (host, port, protocol) {
this._setApiField('host', host);
if (port) {
this.setPort(port);
}
if (protocol) {
this.setProtocol(protocol);
}
},
setProtocol: function (protocol) {
this._setApiField('protocol', protocol.toLowerCase());
},
setPort: function (port) {
this._setApiField('port', port);
},
setResponseFormat: function (format) {
this._setApiField('format', format);
},
setUserToken: function (token) {
if (token) {
this._setApiField('userToken', token);
}
},
setTimeout: function (timeout) {
this._setApiField('timeout', timeout === null ? pinterest.DEFAULT_TIMEOUT : timeout);
},
_setApiField: function (key, value) {
this._api[key] = value;
},
getApiField: function (key) {
return this._api[key];
},
_prepResources: function () {
for (var name in resources) {
this[name[0].toLowerCase() + name.substring(1)] = new resources[name](this);
}
}
};
module.exports = pinterest;
module.exports.pinterest = pinterest;