## Simple python api using flask and sqlalchemy
### Create/update with PUT 
Description: Saves/updates the given user's name and date of birth in the database. 
Request: PUT /hello/<username> {“dateOfBirth": "YYYY-MM-DD" }
Response: 204 No Content
 
**Note:**
<usename> must contains only letters. 
YYYY-MM-DD must be a date before the today date. 

### See message with GET
Description: Returns hello birthday message for the given user 
Request: Get /hello/<username> 
Response: 200 OK 

**Response Examples: **
A. If username's birthday is in N days: { "message": "Hello, <username>! Your birthday is in N day(s)" } 
B. If username's birthday is today: { "message": "Hello, <username>! Happy birthday!" } 
### APP variables
Application listens on localhost:5000 by default, but you can set environment variables
```
export APP_HOST=someadress
export APP_PORT=8080
```

### APP dependencies
**Application uses postgresql and need following environment values:**
```
export SQLALCHEMY_DATABASE_URI="postgresql://user:somestrongpassword@localhost:5432/users"
```

### Starting application
**To start application type:**
```
python -m roverqaz_simple_api
```
**Also you can install application with pip:**
```
pip install --upgrade roverqaz_simple_api
python -m roverqaz_simple_api
```
### Unit tests
**To run unit tests enter:**
```
python tests/test.py
```
**Tests includes for steps**
 - put unittest user with birtdate on 31-12-%YEAR%
 - gets unittest user and checks response message
 - updates unittest user's birtdate to today
 - gets unittest user and checks response message
 
### Package on PyPi
See [roverqaz-simple-api](https://pypi.org/project/roverqaz-simple-api/)