@bskid99/city-state-country
Version:
Get cities, states, countries across the world.
63 lines (50 loc) • 2.94 kB
JavaScript
var countries = require('./countries.json').countries;
var states = require('./states.json').states;
var cities = require('./cities.json').cities;
var alasql = require("alasql");
module.exports = {
getAllCountries: function() {
return countries;
},
getAllStates: function() {
return states;
},
// getAllStatesFromCountry: function(countryName) {
// let stateCountryJoinQuery = 'SELECT state.* FROM ? as state WHERE state.country_id=(VALUE OF SELECT * FROM ? AS country WHERE country.name="'+countryName+'")';
// let stateCountryJoinList = alasql(stateCountryJoinQuery, [states, countries]);
// return stateCountryJoinList;
// },
searchCity: function(searchTextCity) {
let searchCityQuery = 'SELECT * FROM ? as city WHERE name LIKE "'+searchTextCity+'%"';
let cityList = alasql(searchCityQuery, [cities]);
let cityStateJoinQuery = 'SELECT city.id as cityId, city.name as cityName, city.state_id, state.name as stateName, state.country_id FROM ? as city JOIN ? as state ON city.state_id=state.id';
let cityStateJoinList = alasql(cityStateJoinQuery, [cityList, states]);
let cityStateCountryJoinQuery = 'SELECT state.*, country.name as countryName, country.sortname as countryShortName, country.phoneCode as phoneCode FROM ? as state JOIN ? as country ON state.country_id=country.id';
let cityStateCountryJoinList = alasql(cityStateCountryJoinQuery, [cityStateJoinList, countries]);
return cityStateCountryJoinList;
},
getAllCitiesFromState: function(stateName) {
let cityStateJoinQuery = 'SELECT city.* FROM ? as city WHERE city.state_id=(VALUE OF SELECT * FROM ? AS state WHERE state.name="'+stateName+'")';
let cityStateJoinList = alasql(cityStateJoinQuery, [cities, states]);
return cityStateJoinList;
},
getAllStatesFromCountry: function(countryName) {
countryIdQuery = "VALUE OF SELECT * FROM ? AS state WHERE state.name='"+countryName+"'";
let countryId = alasql(countryIdQuery, [countries]);
let stateCountryJoinQuery = 'SELECT state.* FROM ? as state WHERE state.country_id="'+countryId+'"';
let stateCountryJoinList = alasql(stateCountryJoinQuery, [states]);
return stateCountryJoinList;
},
searchState: function(searchTextState) {
let searchStateQuery = 'SELECT * FROM ? as state WHERE name LIKE "'+searchTextState+'%"';
let statesList = alasql(searchStateQuery, [states]);
let stateCountryJoinQuery = 'SELECT state.*, country.name as countryName, country.sortname as countryShortName, country.phoneCode as phoneCode FROM ? as state JOIN ? as country ON state.country_id=country.id';
let stateCountryList = alasql(stateCountryJoinQuery, [statesList, countries]);
return stateCountryList;
},
searchCountry: function(searchTextCountry) {
let searchCountryQuery = 'SELECT * FROM ? as country WHERE name LIKE "'+searchTextCountry+'%"';
let countryList = alasql(searchCountryQuery, [countries]);
return countryList;
}
}