Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
wiki:software:beuthbot:mensa-service [13.12.2019 10:08] Christopher Lehmann |
wiki:software:beuthbot:mensa-service [24.01.2020 15:12] (aktuell) Tolga Karaoglu [Versioning] |
||
---|---|---|---|
Zeile 14: | Zeile 14: | ||
- [[wiki: | - [[wiki: | ||
- [[wiki: | - [[wiki: | ||
- | - [[wiki: | + | - [[wiki: |
- | - [[wiki: | + | |
- [[wiki: | - [[wiki: | ||
- [[wiki: | - [[wiki: | ||
- [[wiki: | - [[wiki: | ||
- | - [[wiki: | + | - [[wiki: |
- [[wiki: | - [[wiki: | ||
- [[wiki: | - [[wiki: | ||
Zeile 35: | Zeile 34: | ||
=== Cloning === | === Cloning === | ||
- | Get the source code by cloning its repository via https: [[https:// | + | Get the source code by cloning its repository via https: [[https:// |
=== Installing === | === Installing === | ||
Zeile 44: | Zeile 42: | ||
'' | '' | ||
\\ | \\ | ||
- | Same for checking if npm is installed, just with npm instead of the node command | + | Same for checking if npm is installed, just with npm instead of the node command\\ |
+ | \\ | ||
'' | '' | ||
- | If you don't have node or npm installed, download the Softare | + | If you don't have node or npm installed, download the software |
\\ | \\ | ||
- | After that install all necessesary dependencies\\ | + | After that install all necessesary dependencies |
\\ | \\ | ||
'' | '' | ||
\\ | \\ | ||
- | Now you can start the local development server to play around with the API and make your calls | + | Now you can start the local development server to play around with the API and make your calls\\ |
\\ | \\ | ||
'' | '' | ||
Zeile 68: | Zeile 66: | ||
==== Structure ==== | ==== Structure ==== | ||
- | The microservice consists of four folders containing several scripts, which are designated to perform certain tasks. We have the **scripts**-folder containing scripts, that will be called by cron-jobs mainly for caching purposes. Then we have the **services**-folder containing files, that consist of functions useful to process incoming requests from the chatbot and to generate a formatted answer-string, | + | The microservice consists of four folders containing several scripts, which are designated to perform certain tasks. Then we have the **services**-folder containing files, that consist of functions useful to process incoming requests from the chatbot and to generate a formatted answer-string, |
==== Functionalities ==== | ==== Functionalities ==== | ||
Zeile 74: | Zeile 72: | ||
On request, this microservice makes calls to the [[https:// | On request, this microservice makes calls to the [[https:// | ||
- | ==== The scripts-folder | + | ==== Project structure |
- | This folder contains two scripts, that will be called by a cron job once a day. Probably early in the morning. `getMealsOfTheDay.js` makes a request to the [OpenMensa API](https:// | + | === The services-folder === |
- | + | ||
- | ==== The services-folder | + | |
This folder consists of several services, that perform specific tasks for the microservice. | This folder consists of several services, that perform specific tasks for the microservice. | ||
- | === generateResponse.js | + | == generateResponse.js == |
Creates a nicely formatted string from a mensa-JSON-object and caches it. | Creates a nicely formatted string from a mensa-JSON-object and caches it. | ||
- | === mealService.js === | + | == mealsOfSpecificDay.js == |
- | Makes a request to the OpenMensa-API and caches the response. It can also filter the file for specific meals. For example only vegetarian or vegan meals, etc. | + | Makes a request to the OpenMensa API and filters by given entities (for instance |
- | === mealsOfSpecificDayService.js === | + | === The routes-folder === |
- | + | ||
- | If a day other than the current day is requested, we need to make another request to the OpenMensa-API, | + | |
- | + | ||
- | ==== The routes-folder | + | |
This folder contains all the routes, that can be addressed on this server. The `index.js` manages all the routes. We've only got two routes in our project. The `/ | This folder contains all the routes, that can be addressed on this server. The `index.js` manages all the routes. We've only got two routes in our project. The `/ | ||
Zeile 106: | Zeile 98: | ||
==== Further Reading ==== | ==== Further Reading ==== | ||
- | - [OpenMensa API](https:// | + | - [[https:// |
==== Built With ==== | ==== Built With ==== | ||
- | - [Node.js](https:// | + | - [[https:// |
- | - [Express.js](https:// | + | - [[https:// |
- | - [Axios](https:// | + | - [[https:// |
==== Versioning ==== | ==== Versioning ==== | ||
- | We use [SemVer](http:// | + | |
+ | We use [[http:// | ||
==== Authors ==== | ==== Authors ==== | ||
- **Tolga Karaoglu**\\ | - **Tolga Karaoglu**\\ | ||
- | - **Steven Sobkowski** | + | - **Steven Sobkowski**\\ |
- | + | \\ | |
- | See also the list of [contributors](https:// | + | See also the list of [[https:// |
+ | <WRAP pagebreak></ |