UNPKG

nuddles

Version:

Node.js wrapper for the Foursquare API

65 lines (44 loc) 1.63 kB
const nets = require('nets') const validateConfig = config => { // Check that config is an object if (typeof config !== "object") { throw new Error("Config must be an object") } // If the user does not pass an accessToken // check that they at least passed their client credentials if (!config.accessToken) { if (!config.clientId || !config.clientSecret) { throw new Error("Missing required fields. Please refer to the documentation") } } } const required = (message) => { throw new Error(message) } const serialise = (params) => { // If the user passes a non empty object // Construct the queryString // Else, return an empty value if ( Object.keys(params).length != 0 ) { let queryString = [] for(let key in params) { params[key] = params[key].toString() queryString.push( key + "=" + params[key].replace(/\s/g, '') ) } return queryString.join('&') } else { return "" } } const makeRequest = (options) => { return new Promise( (resolve, reject) => { nets(options, (err, response, body) => { let responseBody = JSON.parse(body) if (response.statusCode >= 200 && response.statusCode <= 299) { resolve(responseBody) } else { reject("Error! The server responded with a status code of " + responseBody.meta.code + " and sent the following message: " + responseBody.meta.errorDetail) } }) }) } module.exports = { serialise, makeRequest, required, validateConfig}