# 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/`