Address Messaging system
-
gunicorn will run with heroku
-
runtime.txt: Specify python version
-
Procfile: Call command to up a server
-
requirements.txt: Show which app to install
-
Heroku don't support poetry. Run this command to export it
poetry export --without-hashes -f requirements.txt > requirements.txt
-
-
heroku config:set KEY=VALUE
or add in project folder on heroku- Set all environments variables
- Git log as a graph:
$ git log --all --decorate --oneline --graph
id | fullname | password | |
---|---|---|---|
int | str | str | bcrypt |
m_id | r_id |
---|---|
int(fk) | int(fk) |
id | subject | body | created_at | is_read | owner |
---|---|---|---|---|---|
int | varchar | text | date | bool | int |
- Login
- POST /auth/login JSON{email, password}
- GET /api/messages Headers{Authoriazation: Bearer {token}}
NOTE: to test logged in users use email: janedoe@test.com or johndoe@test.com, password: password.
Postman: Call first /auth/login route it will save token and then call /api/messages route.
- Send a new message
- POST /api/messages JSON{sender, recipient, subject, body}
- Show messages for a specific user
- GET /api/messages?user_id=<id>
- GET /api/users/<user_id>/messages
- Show unread messages for a specific user
- GET /api/messages?user_id=<id>&unread=1
- GET /api/users/<user_id>/messages?unread=1
- Read a message
- GET /api/messages/<m_id>
- GET /api/users/<user_id>/messages/1
- Delete a message
- DELETE /api/messages/<m_id>
NOTE: All messages are returned by recipient not by owner if recipient provided or user_id.
- Run tests using coverage:
poetry run coverage run
- Output coverage to html:
poetry run coverage html