# API

Aktienbot API

## Development

1. Create virtual environment `python -m venv venv env/Scripts/activate`
2. Install requirements `pip install -r api/requirements.txt`
3. Set environment variables (see list below)
    1. Use `.env`-file in `api` directory like `.env.example`
    2. Or set variables using `export` or `set` commands. (Windows `set`, Linux `export`)
4. Run api `python api/app.py`

## Testing

1. Create virtual environment `python -m venv venv env/Scripts/activate`
2. Install requirements `pip install -r api/requirements.txt`
3. Set environment variables (see list below)
    1. Use `.env`-file in `api` directory like `.env.example`
    2. Or set variables using `export` or `set` commands. (Windows `set`, Linux `export`)
4. Change directory: `cd api/`
5. Run tests: `python -m pytest -v --cov-report term-missing --cov=app`

## Environment variables

```
    # Flask secret key
    SECRET_KEY=
    
    # MYSQL Connection
    MYSQL_USER=
    MYSQL_PASSWORD=
    MYSQL_HOST=
    MYSQL_PORT=
    MYSQL_DATABASE=
```

## Docker

```
docker run -d \
    --name aktienbot_api \
    --hostname aktienbot_api \
    --publish 80:80 \
    --env "SECRET_KEY=" \
    --env "MYSQL_USER=" \
    --env "MYSQL_PASSWORD=" \
    --env "MYSQL_HOST=" \
    --env "MYSQL_PORT=" \
    --env "MYSQL_DATABASE=" \
    --restart unless-stopped \
    registry.flokaiser.com/aktienbot/api:latest
```

or load environment variables from file by using `--env-file <filename>`