108 lines
2.2 KiB
Markdown
108 lines
2.2 KiB
Markdown
# 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](#first-steps)
|
|
- [Location Data](#location-data)
|
|
- [Endpoints](#endpoints)
|
|
|
|
## 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 `.env` from `example.env` and 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
|
|
|
|
|
|
### Authentication
|
|
|
|
Implemented using `djangorestframework-simplejwt`
|
|
|
|
|
|
New token pair endpoint: `/api/v1/token/`
|
|
|
|
Response:
|
|
```json
|
|
{
|
|
"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:
|
|
```json
|
|
{
|
|
"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/`
|