UNPKG

google-kgsearch

Version:

A simple wrapper for Google's Knowledge Graph Search API

41 lines (33 loc) 1.17 kB
'use strict' const request = require('request') const qs = require('querystring') function KGSearch (api_key) { this.search = (opts, callback) => { // Handle missing params and type errors if (!opts) { throw Error(`[kgsearch] missing argument 'params' {object}`) } else if (typeof opts !== 'object') { throw TypeError(`[kgsearch] argument 'params' must be an {object}`) } // Handle missing callback and type errors if (!callback) { throw Error(`[kgsearch] missing argument 'callback' function`) } else if (typeof callback !== 'function') { throw TypeError(`[kgsearch] argument 'callback' must be a {function}`) } let params = qs.stringify(opts) let api_url = `https://kgsearch.googleapis.com/v1/entities:search` + `?${params}&key=${api_key}` request({ url: api_url, json: true }, (err, res, data) => { if (err) callback(err) callback(null, data.itemListElement) }) return this } } module.exports = (api_key) => { if (!api_key || typeof api_key !== 'string') { throw Error(`[kgsearch] missing 'api_key' {string} argument`) } return new KGSearch(api_key) }