UNPKG

restaurants

Version:

Search a service and get a list of restaurants.

56 lines (45 loc) 1.12 kB
/** * Dependencies */ var get = require('superagent').get , findAll = require('./find-all'); /** * Factual Constants */ var KEY = process.env.FACTUAL_API_KEY , ENDPOINT = 'http://api.v3.factual.com/t/restaurants' , MAX_LIMIT = 50 , MAX_OFFSET = 450; /** * Expose `search` */ module.exports = function(lat, lng, radius, all, callback) { if (!KEY) throw new Error('Environment variable FACTUAL_API_KEY must be set.'); // Run the query var query = { geo: '{"$circle":{"$center":[' + lat + ',' + lng + '],"$meters":' + radius + '}}' , filters: '{"category_ids":{"$nin":[355,343]}}' // exclude dessert, fast food , KEY: KEY }; if (all) { findAll(query, MAX_LIMIT, MAX_OFFSET, getRestaurants, callback); } else { getRestaurants(query, 10, 0, callback); } }; /** * Get the restaurants */ function getRestaurants(query, limit, offset, callback) { query.limit = limit; query.offset = offset; get(ENDPOINT) .query(query) .end(function(err, res) { if (err) { callback(err, res); } else { callback(err, res.body.response.data); } }); };