From ece0e132e21f5b2989705210c1119e8f277e4d60 Mon Sep 17 00:00:00 2001 From: pawerda Date: Tue, 5 May 2015 04:08:01 +0200 Subject: [PATCH 1/4] Create PlaceAutocompleteTest.js --- test/PlaceAutocompleteTest.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 test/PlaceAutocompleteTest.js diff --git a/test/PlaceAutocompleteTest.js b/test/PlaceAutocompleteTest.js new file mode 100644 index 0000000..3a2df95 --- /dev/null +++ b/test/PlaceAutocompleteTest.js @@ -0,0 +1,19 @@ +(function () { + "use strict"; + + var assert = require("assert"); + + var PlaceAutocomplete = require("../lib/PlaceAutocomplete.js"); + var config = require("./config.js"); + + var placeAutocomplete = new PlaceAutocomplete(config.apiKey, config.outputFormat); + + var parameters = { + input: 'sydney lyr' + }; + placeAutocomplete(parameters, function (error, response) { + if (error) throw error; + assert.equal(response.status, "OK", "Place autocomplete request response status is OK"); + }); + +})(); From 8b350d0aa39c5187ce02d7893c0cad743b3cb0bb Mon Sep 17 00:00:00 2001 From: "pawel.werda@websensa.com" Date: Tue, 5 May 2015 04:11:24 +0200 Subject: [PATCH 2/4] PlaceAutocomplete --- index.js | 4 ++++ lib/PlaceAutocomplete.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 lib/PlaceAutocomplete.js diff --git a/index.js b/index.js index 57188f1..b3834db 100644 --- a/index.js +++ b/index.js @@ -5,6 +5,7 @@ var RadarSearch = require("./lib/RadarSearch.js"); var TextSearch = require("./lib/TextSearch.js"); var PlaceDetailsRequest = require("./lib/PlaceDetailsRequest.js"); + var PlaceAutocomplete = require("./lib/PlaceAutocomplete.js"); var AddEvent = require("./lib/AddEvent.js"); var DeleteEvent = require("./lib/DeleteEvent.js"); var EventDetails = require("./lib/EventDetails.js"); @@ -16,11 +17,14 @@ radarSearch: new RadarSearch(apiKey, outputFormat), textSearch: new TextSearch(apiKey, outputFormat), placeDetailsRequest: new PlaceDetailsRequest(apiKey, outputFormat), + placeAutocomplete: new PlaceAutocomplete(apiKey, outputFormat), addEvent: new AddEvent(apiKey, outputFormat), deleteEvent: new DeleteEvent(apiKey, outputFormat), eventDetails: new EventDetails(apiKey, outputFormat), imageFetch: new ImageFetch(apiKey) + }; }; })(); + diff --git a/lib/PlaceAutocomplete.js b/lib/PlaceAutocomplete.js new file mode 100644 index 0000000..229a584 --- /dev/null +++ b/lib/PlaceAutocomplete.js @@ -0,0 +1,32 @@ +(function () { + "use strict"; + + var querystring = require("querystring"); + var https = require("https"); + + var HttpResponseProcessor = require("./HttpResponseProcessor.js"); + var validate = require("./validate.js"); + + module.exports = function (apiKey, outputFormat) { + return function (parameters, callback) { + validate.apiKey(apiKey); + validate.outputFormat(outputFormat); + //Required parameters + parameters.key = apiKey; + parameters.input = parameters.input || ''; + + if (typeof parameters.location === "object") parameters.location = parameters.location.toString(); + + var options = { + hostname: "maps.googleapis.com", + path: "/maps/api/place/autocomplete/" + outputFormat + "?" + querystring.stringify(parameters) + }; + var request = https.request(options, new HttpResponseProcessor(outputFormat === "json", callback)); + request.on("error", function (error) { + callback(new Error(error)); + }); + request.end(); + }; + }; + +})(); From 312d408fd86523474435a37028d67340cf52317f Mon Sep 17 00:00:00 2001 From: "pawel.werda@websensa.com" Date: Tue, 5 May 2015 04:22:39 +0200 Subject: [PATCH 3/4] Added default input value --- lib/PlaceAutocomplete.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/PlaceAutocomplete.js b/lib/PlaceAutocomplete.js index 229a584..0665238 100644 --- a/lib/PlaceAutocomplete.js +++ b/lib/PlaceAutocomplete.js @@ -13,7 +13,7 @@ validate.outputFormat(outputFormat); //Required parameters parameters.key = apiKey; - parameters.input = parameters.input || ''; + parameters.input = parameters.input || 'sydney lyr'; if (typeof parameters.location === "object") parameters.location = parameters.location.toString(); From 47d69a4699ba6bc8f4d06d46d376e0908f8239e6 Mon Sep 17 00:00:00 2001 From: "pawel.werda@websensa.com" Date: Tue, 5 May 2015 04:37:27 +0200 Subject: [PATCH 4/4] readme edit --- readme.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/readme.md b/readme.md index 6b80a7d..6ac5fcc 100644 --- a/readme.md +++ b/readme.md @@ -87,6 +87,24 @@ Yes, fork, hack and send me a PR }); }); +### place autocomplete + + var GooglePlaces = require("googleplaces"); + var googlePlaces = new GooglePlaces(process.env.GOOGLE_PLACES_API_KEY, process.env.GOOGLE_PLACES_OUTPUT_FORMAT); + var parameters; + + /** + * Place autocomplete - https://developers.google.com/places/webservice/autocomplete + */ + parameters = { + input: "world trade " + + }; + googlePlaces.textSearch(parameters, function (error, response) { + if (error) throw error; + console.log(response.predictions); + }); + ### text search var GooglePlaces = require("googleplaces"); @@ -119,3 +137,5 @@ Yes, fork, hack and send me a PR if (error) throw error; console.log(response.results); }); + +