comuni-province-regioni-italia
Version:
Piccolo server in Node.JS che espone API da cui ricavare i comuni, province, regioni italiane. Inoltre è possibile avere anche gli nazioni, continenti e lingue del mondo. Utile per popolare elenchi e liste drop-down
92 lines (76 loc) • 2.32 kB
JavaScript
const fs = require('fs');
const path = require('path');
const world = require('countries-list');
const { runInThisContext } = require('vm');
class PrivateService {
constructor() {
let comunidata = fs.readFileSync(path.resolve("assets/json/comuni.json"));
let comuni = JSON.parse(comunidata);
let provincedata = fs.readFileSync(path.resolve("assets/json/province.json"));
let province = JSON.parse(provincedata);
let regionidata = fs.readFileSync(path.resolve("assets/json/regioni.json"));
let regioni = JSON.parse(regionidata);
this.comuni = comuni;
this.province = province;
this.regioni = regioni;
this.stati = world.countries;
this.continenti = world.continents;
this.lingue = world.languages;
}
// ### GET ALL ###
getComuni() {
return this.comuni;
}
getProvince () {
return this.province;
}
getRegioni() {
return this.regioni;
}
getStati() {
return this.stati;
}
getContinenti() {
return this.continenti;
}
getLingue() {
return this.lingue;
}
// ### GET BY SEARCHING ###
getComuniBySiglaProvincia(sigla) {
let result = [];
this.comuni.forEach( function(comune) {
if ( comune.sigla == sigla)
result.push(comune);
});
return result;
}
getComuniByProvincia(provincia) {
let result = [];
this.comuni.forEach( function(comune) {
if ( comune.provincia.nome == provincia)
result.push(comune);
});
return result;
}
getProvinceByRegione(regione) {
let result = [];
this.province.forEach( function(provincia) {
if ( provincia.regione == regione)
result.push(provincia);
});
return result;
}
}
class Service {
constructor() {
throw new Error('Use Service.getInstance()');
}
static getInstance() {
if (!Service.instance) {
Service.instance = new PrivateService();
}
return Service.instance;
}
}
module.exports = Service;