A suite to track Project Diva score statistics and ratings / D4DJ event data.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
projectdivar/server/node_modules/twitter-autohook/client/index.js

47 lines
1.4 KiB

const needle = require('needle');
const crypto = require('crypto');
const package = require('../package.json');
const { URL, URLSearchParams } = require('url');
const { oauth } = require('../oauth');
needle.defaults({user_agent: `${package.name}/${package.version}`})
const auth = (method, url, options, body) => {
if (Object.prototype.toString.call(options) !== '[object Object]') {
return {};
}
options.headers = options.headers || {};
if (options.oauth) {
options.headers.authorization = oauth(url, method, options, !!options.json ? {} : body);
} else if (options.bearer) {
options.headers.authorization = `Bearer ${options.bearer}`;
}
return options;
}
const get = ({url, ...options}) => {
method = 'GET';
options.options = auth(method, url, options.options);
return needle(method, url, null, options.options);
}
const del = ({url, ...options}) => {
method = 'DELETE';
options.options = auth(method, url, options.options);
return needle(method, url, null, options.options);
}
const post = ({url, body = {}, ...options}) => {
method = 'POST';
options.options = auth(method, url, options.options, body);
return needle(method, url, body, options.options);
}
const put = ({url, body = {}, ...options}) => {
method = 'PUT';
options.options = auth(method, url, options.options, body);
return needle(method, url, body, options.options);
}
module.exports = { get, del, post, put };