From c9e94d533cc73c5464d41daa51de88adf8bc281e Mon Sep 17 00:00:00 2001 From: Mahdi Sellami Date: Wed, 8 Jul 2020 16:23:47 +0200 Subject: [PATCH] -added services resource logic. - prepopulated database with services --- data/services.json | 12 ++++++++++++ index.js | 6 ++++++ models/service.js | 17 +++++++++++++++++ service/InfoService.js | 42 +++++------------------------------------- utils/dbUtils.js | 16 ++++++++++++++++ 5 files changed, 56 insertions(+), 37 deletions(-) create mode 100644 data/services.json create mode 100644 models/service.js create mode 100644 utils/dbUtils.js diff --git a/data/services.json b/data/services.json new file mode 100644 index 0000000..ec02233 --- /dev/null +++ b/data/services.json @@ -0,0 +1,12 @@ +{ + "services": [ + { + "leikaId": "99025002005000", + "fimMasterData": {}, + "shortText": "Wenn Sie ein Gaststättengewerbe mit Alkoholausschank betreiben wollen, benötigen Sie grundsätzlich eine Gaststättenerlaubnis.\nUnabhängig von der hier behandelten Gaststättenerlaubnis und abhängig von Ihrem Angebot müssen Sie ggf. weitere Anmelde- und Erlaubnispflichten erfüllen, etwa nach der Gewerbeordnung und der Handwerksordnung. ", + "fullText": "Wenn Sie ein Gaststättengewerbe mit Alkoholausschank betreiben wollen, benötigen Sie grundsätzlich eine Gaststättenerlaubnis.\nUnabhängig von der hier behandelten Gaststättenerlaubnis und abhängig von Ihrem Angebot müssen Sie ggf. weitere Anmelde- und Erlaubnispflichten erfüllen, etwa nach der Gewerbeordnung und der Handwerksordnung.\nEin Gaststättengewerbe betreiben Sie, wenn Sie gewerbsmäßig\n• im stehenden Gewerbe, also in einer festen Betriebsstätte, Getränke (Schankwirtschaft) oder zubereitete Speisen (Speisewirtschaft) zum Verzehr an Ort und Stelle verabreichen oder\n• im Reisegewerbe (von einer lediglich für die Dauer einer Veranstaltung ortsfesten Betriebsstätte aus) Getränke oder zubereitete Speisen zum Verzehr an Ort und Stelle verabreichen.\nVoraussetzung ist in jedem Fall, dass der Betrieb grundsätzlich jedermann zugänglich ist.\nKeine Gaststättenerlaubnis benötigen Sie, wenn Sie lediglich\n• alkoholfreie Getränke,\n• unentgeltliche Kostproben,\n• zubereitete Speisen oder\n• in Verbindung mit einem Beherbergungsbetrieb Getränke und zubereitete Speisen an Hausgäste\nverabreichen.\nFür Straußwirtschaften gelten Sonderregelungen (§ 14 des Gaststättengesetzes [GastG]).\nDie Erlaubnis wird für eine bestimmte Betriebsart (z. B. Schankwirtschaft, Diskothek, Imbisswirtschaft) erteilt und gilt nur für die dem Betrieb dienenden Räume. Gegebenenfalls ist außerdem eine Baugenehmigung erforderlich.\n \n Erlaubnispflichtig ist auch jede Erweiterung des Gaststättenbetriebes und jede Änderung der Räume.\n \n Bei Gesellschaften bürgerlichen Rechts und Personenhandelsgesellschaften ist für jeden Gesellschafter eine eigene Erlaubnis erforderlich. Bei juristischen Personen und nichtrechtsfähigen Vereine ist hingegen nur eine einzige Gaststättenerlaubnis erforderlich.\n \n Wenn Sie einen bestehenden erlaubnispflichtigen Gaststättenbetrieb von einer anderen Person übernehmen wollen, kann Ihnen bis zur Erteilung der endgültigen Gaststättenerlaubnis eine vorläufige Erlaubnis auf Widerruf (in der Regel für 3 Monate) erteilt werden (§11 GastG). Mit dieser Erlaubnis kann der Betrieb auch kurzfristig übernommen werden.\n \n Eine Erlaubnis zur Stellvertretung (§ 9 GastG) sollte beantragt werden, wenn Sie die Gaststätte durch einen Stellvertreter führen lassen wollen, der auch verantwortlich gegenüber Behörden und Institutionen auftreten soll. Der Stellvertreter muss die gleichen Kriterien bezüglich persönlicher Zuverlässigkeit und Eignung erfüllen wie Sie selbst.", + "serviceDescription": "Gaststättenerlaubnis", + "responsibleAuthority": "Gaststättenbehörde ist, je nach Ort, in dem die Gaststätte betrieben wird, die Gemeinde- oder Stadtverwaltung oder das Landratsamt." + } + ] +} \ No newline at end of file diff --git a/index.js b/index.js index d2f1ed3..cb18b5c 100755 --- a/index.js +++ b/index.js @@ -32,3 +32,9 @@ db.on('error', console.error.bind(console, 'MongoDB connection error:')); // Delete previous content of the database db.dropDatabase(); +// Populate database with services +var fs = require('fs'); +var dbUtils = require('./utils/dbUtils.js'); +let rawdata = fs.readFileSync('./data/services.json'); +let services = JSON.parse(rawdata); +dbUtils.initiateWithServices(services); \ No newline at end of file diff --git a/models/service.js b/models/service.js new file mode 100644 index 0000000..2e216ed --- /dev/null +++ b/models/service.js @@ -0,0 +1,17 @@ +//Require Mongoose +var mongoose = require('mongoose'); + +//Define a schema +var Schema = mongoose.Schema; + +var ServiceSchema = new Schema({ + leikaId : String, + fimMasterData : Schema.Types.Mixed, + shortText : String, + fullText : String, + serviceDescription : String, + responsibleAuthority : String +}); + +//Export function to create "Service" model class +module.exports = Service = mongoose.model('Service', ServiceSchema ); \ No newline at end of file diff --git a/service/InfoService.js b/service/InfoService.js index 990e2d6..fa1c2cb 100755 --- a/service/InfoService.js +++ b/service/InfoService.js @@ -1,4 +1,5 @@ 'use strict'; +const Service = require('../models/service'); /** @@ -8,29 +9,8 @@ **/ exports.getAllServices = function() { return new Promise(function(resolve, reject) { - var examples = {}; - examples['application/json'] = { - "services" : [ { - "leikaId" : "leikaId", - "fimMasterData" : { }, - "shortText" : "shortText", - "fullText" : "fullText", - "serviceDescription" : "serviceDescription", - "responsibleAuthority" : "responsibleAuthority" - }, { - "leikaId" : "leikaId", - "fimMasterData" : { }, - "shortText" : "shortText", - "fullText" : "fullText", - "serviceDescription" : "serviceDescription", - "responsibleAuthority" : "responsibleAuthority" - } ] -}; - if (Object.keys(examples).length > 0) { - resolve(examples[Object.keys(examples)[0]]); - } else { - resolve(); - } + const serviceRecords = Service.find({}); + resolve(serviceRecords); }); } @@ -43,20 +23,8 @@ exports.getAllServices = function() { **/ exports.getServiceByLeiKaId = function(leikaId) { return new Promise(function(resolve, reject) { - var examples = {}; - examples['application/json'] = { - "leikaId" : "leikaId", - "fimMasterData" : { }, - "shortText" : "shortText", - "fullText" : "fullText", - "serviceDescription" : "serviceDescription", - "responsibleAuthority" : "responsibleAuthority" -}; - if (Object.keys(examples).length > 0) { - resolve(examples[Object.keys(examples)[0]]); - } else { - resolve(); - } + const serviceRecord = Service.find({leikaId: leikaId}); + resolve(serviceRecord); }); } diff --git a/utils/dbUtils.js b/utils/dbUtils.js new file mode 100644 index 0000000..6879f78 --- /dev/null +++ b/utils/dbUtils.js @@ -0,0 +1,16 @@ +'use strict'; +const Service = require('../models/service'); + +/** + * Submit a list of services + * + * body list of services + * returns + **/ +exports.initiateWithServices = function(body) { + return new Promise(function(resolve, reject) { + var servicesRecord = Service.insertMany(body.services) + resolve(servicesRecord); + }); +} + -- GitLab