2.8 KiB
LaTiendaCOOP backend
This README aims to document functionality of backend as well as required steps to get it up and running.
Table of Contents
First Steps
-
Clone repository:
git clone git@bitbucket.org:enreda/back-latienda.git -
Use docker image for Postgis
docker run --name postgis -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -d -p 5432:5432 postgis/postgis
- Create file
.envfromexample.envand populate fields correctly
From inside the project's folder:
- Make migrations:
python manage.py makemigrations core geo companies products history stats
python manage.py migrate
- Start server in development mode:
python manage.py runserver
Location data
To load initial location data use: python manage.py addgeo
Endpoints
User Management
Creation:
- endpoint: /api/v1/users/
- method: GET
- payload:
{
"email": "test@email.com",
"full_name": "TEST NAME",
"password": "VENTILADOR2ES1234499.89",
}
Change password:
- endpoint: api/v1/user/change_password/{user.pk}/
- method: POST
- payload:
{
"old_password": "my_old_password",
"password": "SUPERSECRETNEWPASSWORD",
"password2": "SUPERSECRETNEWPASSWORD"
}
Update user profile:
- endpoint: api/v1/user/update/int:pk/
- method: PUT
- payload:
{
"email": "new_user@email.com",
"full_name": "Mr. TEST NAME",
}
Authentication
Implemented using djangorestframework-simplejwt
New token pair endpoint: /api/v1/token/
Response:
{
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTYxMjI3MTcwNSwianRpIjoiZDU4YTgzYzFkYzFkNDI5MTljMGQ0NzcxNzljNzUxYTQiLCJ1c2VyX2lkIjo4fQ.yln80W5lONSyHwwqF4qBBHteqLuRfdLLWuaQANr_vxc",
"access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjEyMTg4OTA1LCJqdGkiOiIzNGIxMzM3NmU4MWI0OWY5YjU3ZmUxM2M5NThmZWZkYiIsInVzZXJfaWQiOjh9.aRDCUvKj7LCvixjPLC9ghy0h7rfRwR6Lo3A7HX4kSHE"
}
Refresh expired token endpoint: /api/v1/token/refresh/
Users
Endpoint url: /api/v1/users/
Authenticated users cannot create new users User are inactive by default
To create user:
{
"email": "test_user23@mail.com",
"full_name": "Mr Test User",
"password": "wqertewqr32qrewqr",
"provider": "TWITTER"
}
Companies
Endpoint url: /api/v1/companies/
Products
Endpoint url: /api/v1/products/
History
Endpoint url: /api/v1/history/:
Historical records about product importation
Stats
Endpoint url: /api/v1/stats/
logs about user interaction with products links
Geo location
Location ednpoints:
/api/v1/countries//api/v1/regions//api/v1/provinces//api/v1/cities/