put.io-node
Version:
A Node.js wrapper for put.io APIv2 http://put.io
117 lines • 4.3 kB
JavaScript
;
const request = require('request');
const fs = require('fs');
class PutIoHelper {
constructor(client) {
this.API_URL = 'https://api.put.io/v2/';
this.putioClient = client;
}
requestData(requestType, apiEndpoint, apiParameters) {
let apiCall = `${this.API_URL}${apiEndpoint}?oauth_token=${this.putioClient.oAuthToken}`;
if (requestType === 'GET') {
apiParameters.forEach(element => {
apiCall = apiCall.concat(element);
});
const options = {
url: `${apiCall}`,
headers: {
'Content-Type': 'application/json'
}
};
return new Promise((resolve, reject) => {
request.get(options, (error, response, body) => {
if (!error && response.statusCode === 200) {
resolve(body);
}
else {
reject(`Error:
Status:${response.statusCode}
Body:${body}
ErrMsg:${error}`);
}
});
});
}
else {
const options = {
url: `${apiCall}`,
headers: {
'Content-Type': 'application/json'
}
};
return new Promise((resolve, reject) => {
if (apiParameters.length > 0) {
request.post(options, (error, response, body) => {
if (!error && response.statusCode === 200) {
resolve(body);
}
else {
reject(`Error:
Status:${response.statusCode}
Body:${body}
ErrMsg:${error}`);
}
}).form(JSON.parse(apiParameters[0]));
}
else {
request.post(options, (error, response, body) => {
if (!error && response.statusCode === 200) {
resolve(body);
}
else {
reject(`Error:
Status:${response.statusCode}
Body:${body}
ErrMsg:${error}`);
}
});
}
});
}
}
uploadData(requestType, apiEndpoint, apiParameters) {
const apiCall = `https://upload.put.io/v2/files/upload?oauth_token=${this.putioClient.oAuthToken}`;
let formData = {};
if (apiParameters.length === 1) {
formData = {
file: fs.createReadStream(apiParameters[0])
};
}
else if (apiParameters.length === 2) {
if (Number.isNaN(Number(apiParameters[1]))) {
formData = {
file: fs.createReadStream(apiParameters[0]),
filename: apiParameters[1]
};
}
else {
formData = {
file: fs.createReadStream(apiParameters[0]),
parent_id: apiParameters[1]
};
}
}
else {
formData = {
file: fs.createReadStream(apiParameters[0]),
filename: apiParameters[1],
parent_id: apiParameters[2]
};
}
return new Promise((resolve, reject) => {
request.post({ url: `${apiCall}`, formData: formData }, (error, response, body) => {
if (!error && response.statusCode === 200) {
resolve(body);
}
else {
reject(`Error:
Status:${response.statusCode}
Body:${body}
ErrMsg:${error}`);
}
});
});
}
}
exports.PutIoHelper = PutIoHelper;
//# sourceMappingURL=PutIoHelper.js.map