# API-server Apollo server written in typescript that handles business logic. [![Build Status](https://travis-ci.com/fLotte-meets-HWR-DB/apollo-server.svg?token=YfRmpHAXqyUafCgSEexw&branch=main)](https://travis-ci.com/fLotte-meets-HWR-DB/apollo-server) ## Assumptions The [flotte-user-management server](https://github.com/fLotte-meets-HWR-DB/flotte-user-management) and postgres are running. Set the [environment variables](#Environment-Variables) accordingly. ## Usage ### Docker You can build and run a docker image with ```bash docker build -t . docker run --rm -p 4000:4000 -e ... ``` Don't forget to pass all the [environment variables](#Environment-Variables) with the -e option. ### Compile and Run Install gulp if not installed ```bash npm -g gulp ``` ```bash npm install gulp npm start ``` You can set the [environment variables](#Environment-Variables) in a _.env_ file. ### For Development Install node\_modules and gulp ```bash npm -g gulp npm install ``` Start gulp in watch mode to recompile the type script ```bash gulp watchTs ``` This will watch *.ts files in _./src_ and recompile to _./dist_. You will have to restart the server yourself. ## Environment Variables The following environment variables can be used to configure the server: ```bash RPC_HOST=host:port NODE_ENV=develop/production DATABASE_URL=postgres://username:password@host:port/database_name ``` - __RPC_HOST__ is used for the connection with the [flotte-user-management server](https://github.com/fLotte-meets-HWR-DB/flotte-user-management). - __NODE_ENV__ will not check authentication if set to development - __DATABASE_URL__ for connection with the postgres database If the API server cannot connect to the [flotte-user-management server](https://github.com/fLotte-meets-HWR-DB/flotte-user-management) or the postgres data base. It will try to reconnect in an endless loop.