From 6526b849efd9c672964367497c9aac54af3c221a Mon Sep 17 00:00:00 2001 From: "Begerad, Stefan" Date: Tue, 31 May 2022 13:02:15 +0200 Subject: [PATCH] feat(week-from-obj): initial commit --- ary-this-week/ary-this-week.js | 2 +- week-from-obj/.gitignore | 1 + week-from-obj/README.md | 21 ++++++++++++ week-from-obj/ary-this-week.js | 13 +++++++ week-from-obj/index.js | 63 ++++++++++++++++++++++++++++++++++ week-from-obj/package.json | 19 ++++++++++ week-from-obj/service.js | 47 +++++++++++++++++++++++++ 7 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 week-from-obj/.gitignore create mode 100644 week-from-obj/README.md create mode 100644 week-from-obj/ary-this-week.js create mode 100644 week-from-obj/index.js create mode 100644 week-from-obj/package.json create mode 100644 week-from-obj/service.js diff --git a/ary-this-week/ary-this-week.js b/ary-this-week/ary-this-week.js index a833afa..895250e 100644 --- a/ary-this-week/ary-this-week.js +++ b/ary-this-week/ary-this-week.js @@ -1,7 +1,7 @@ function getAryThisWeek(date){ const dateToday=new Date(); let dateIncrement=new Date(dateToday); - aryThisWeek=[]; + const aryThisWeek=[]; for(var i=0;i<7;i++){ aryThisWeek[i]=new Date(dateIncrement); dateIncrement=new Date(dateIncrement.setDate(dateIncrement.getDate()+1)); diff --git a/week-from-obj/.gitignore b/week-from-obj/.gitignore new file mode 100644 index 0000000..e6905a2 --- /dev/null +++ b/week-from-obj/.gitignore @@ -0,0 +1 @@ +.env* \ No newline at end of file diff --git a/week-from-obj/README.md b/week-from-obj/README.md new file mode 100644 index 0000000..b34d55d --- /dev/null +++ b/week-from-obj/README.md @@ -0,0 +1,21 @@ +## Overview + +tbc + +## Preparation +Run the following command in your favorite terminal to install dependenies. +``` +npm i +``` +## Development setup +Run the following command in your favorite terminal if you fancy log messages for debugging. +``` +export DEBUG=$DEBUG,debug,ary-this-week +``` +Run the following command in your favorite terminal to start the service in development mode. +``` +npm run dev +``` +## Production deployment + +tbc diff --git a/week-from-obj/ary-this-week.js b/week-from-obj/ary-this-week.js new file mode 100644 index 0000000..895250e --- /dev/null +++ b/week-from-obj/ary-this-week.js @@ -0,0 +1,13 @@ +function getAryThisWeek(date){ + const dateToday=new Date(); + let dateIncrement=new Date(dateToday); + const aryThisWeek=[]; + for(var i=0;i<7;i++){ + aryThisWeek[i]=new Date(dateIncrement); + dateIncrement=new Date(dateIncrement.setDate(dateIncrement.getDate()+1)); + } + return aryThisWeek; +} +module.exports={ + getAryThisWeek +}; diff --git a/week-from-obj/index.js b/week-from-obj/index.js new file mode 100644 index 0000000..ecc5ea6 --- /dev/null +++ b/week-from-obj/index.js @@ -0,0 +1,63 @@ +const axios=require('axios'); +const debug=require('debug')('debug'); +const aryThisWeek=require('./ary-this-week'); +const routeService=require('./service'); + +run().catch(err => { + debug('run: error') + console.log(err) +}); + +async function run() { + debug('run started...') + const thisWeek=aryThisWeek.getAryThisWeek(new Date()); + debug('thisWeek: '+thisWeek) + + + let url = 'http://localhost:65534/service-overview'; + debug('url: '+url); + let res={}; + res= await axios.get(url); + if('data' in res){ + let aryServiceOverview=Object.entries(res.data); + for(var i=1;i<2;i++){ + debug('i: '+i); + let agencyId = aryServiceOverview[i][0]; + debug('agencyId: '+agencyId); + let objRoutes = aryServiceOverview[i][1]; + let count = Object.keys(objRoutes).length; + debug('objRoutes count: ' + count); + let aryRoutes =Object.entries(objRoutes); + for(var j=0;j<1;j++){ + debug('j: '+j); + let routeId=aryRoutes[i][0]; + debug('routeId: ' + routeId); + let routeShortName=aryRoutes[i][1]; + debug('routeShortName: ' + routeShortName); + if(routeShortName){ + routeService.getService(routeShortName); + } + } + } + /* TODO do run over the entire agencies + Object.entries(res.data).map((agency, key) => { + //debug('key: ' + key); + let objRoutes = agency[1]; + let count = Object.keys(objRoutes).length; + //debug('count: ' + count); + let agencyId = agency[0]; + Object.entries(objRoutes).map((route,key)=>{ + let routeId=route[0]; + let routeShortName=route[1]; + if(routeShortName){ + debug('routeShortName: ' + routeShortName); + routeService.getService(routeShortName); + } + }); + }); + */ + }else{ + debug('no data in res'); + } + debug('run done.') +} diff --git a/week-from-obj/package.json b/week-from-obj/package.json new file mode 100644 index 0000000..740b1a3 --- /dev/null +++ b/week-from-obj/package.json @@ -0,0 +1,19 @@ +{ + "private": "true", + "name": "week-from-obj", + "version": "0.0.1", + "description": "", + "main": "index.js", + "scripts": { + "dev": "nodemon index.js", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "Stefan Begerad", + "license": "GPL-3.0", + "devDependencies": { + "nodemon": "^2.0.7" + }, + "dependencies": { + "axios": "^0.27.2" + } +} diff --git a/week-from-obj/service.js b/week-from-obj/service.js new file mode 100644 index 0000000..e1ebcef --- /dev/null +++ b/week-from-obj/service.js @@ -0,0 +1,47 @@ +const axios=require('axios'); +const debug=require('debug')('service'); + +/* TODO do not call this function when it is required/imported as module +getService().catch(err => { + debug('getService: error') + console.log(err) +}); +*/ + +async function getService(routeShortName) { + debug('getService started...') + //TODO clean up static final route + routeShortName=565; + debug('routeShortName: ' + routeShortName); + let url = `http://localhost:65534/servicedays?routeshortname=${routeShortName}`; + debug('url: '+url); + let resp={}; + resp= await axios.get(url); + if('data' in resp){ + const objServiceDays=resp.data; + const aryServiceDays=Object.entries(objServiceDays); + debug('aryServiceDays len: '+aryServiceDays.length); + for(var i=0;i<1;i++){ + debug('i: '+i); + let serviceDay=aryServiceDays[i][0]; + debug('serviceDay: '+serviceDay); + let dateFromDay=new Date(parseInt(serviceDay,10)); + debug('dateFromDay: '+dateFromDay); + } + + + /* TODO do not run over the entire service days + aryServiceDays.map((day,key)=>{ + let dateFromDay=new Date(parseInt(day[0],10)); + debug('dateFromDay: '+dateFromDay); + }); + */ + }else{ + debug('no data in resp'); + } + debug('getService done.') +} + +module.exports={ + getService +};