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 .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

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",
}

COOP and Managin User Data Load

For massive load of data from COOPs and the managing user.

CSV headers: email,cif,nombre-coop,nombre-corto,url,es-tienda

Only admin users have access to endoint

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/
Description
No description provided
Readme 42 MiB
Languages
Python 53.9%
HTML 46.1%