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></ | ||