96 lines
2.3 KiB
JavaScript
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;
|