Files
don_confiao_backend/doc/requests.org
aserrador f526330f9e feat: add product activation/deactivation and filtering by active status
- Add 'active' boolean field to Product model with default=True
- Implement ProductView.get_queryset() to filter products by active status
  - Default behavior: return only active products
  - Support query params: ?active=true|false|all
  - Support variations: 1/0, yes/no for true/false
  - Detail operations (GET/PATCH/DELETE by ID) work with all products
- Update ProductSerializer to include 'active' field
- Add comprehensive test suite (11 new tests):
  - Test filtering by active/inactive/all products
  - Test parameter variations (1, yes, 0, no)
  - Test PATCH to activate/deactivate products
  - Test default list behavior after status changes
- Update API documentation in doc/requests.org with examples
- All tests passing (13 product tests + 8 API tests)
2026-05-29 00:01:29 -05:00

3.9 KiB

Requests

Ejemplo de request contra la api usando verb

Autenticación   verb

template http://localhost:7000/api Content-Type: application/json;

Solicitar token

post token

{ "username": "admin", "password": "admin" }

respuesta
{
  "refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTc4MDExNTc0NywiaWF0IjoxNzgwMDI5MzQ3LCJqdGkiOiIxNmVjZGMxZmY4Y2Y0MzA4ODM3ZjM5Y2ZiNjQwNmZiMCIsInVzZXJfaWQiOiIxIn0.wmN-wp3Izv0NrfL_ap_i8eyg29w-foHNrQCCL6HoZWg",
  "access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzgwMDMxMTQ3LCJpYXQiOjE3ODAwMjkzNDcsImp0aSI6ImQ4ZjE1YTRmODc5NzRjZGViZDEzYzc1ZTU4ZDk3ZjEwIiwidXNlcl9pZCI6IjEifQ.kkQVT2pcYeS_TxlJ6QPU3rNOlZhOv96pyqVEGJI85KA"
}

Perfil de usuario

get users/me Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzgwMDA2MzU4LCJpYXQiOjE3ODAwMDQ1NTgsImp0aSI6IjkwNzY4OGU2MmNlNTQ1M2JiYzU5MTA2MDhmMjY1MmY5IiwidXNlcl9pZCI6IjEifQ.aFls9WyA1VuDeMMUu8t7Pa9CbbLfyvIg9pB9xIxydpU

Respuesta
{
  "id": 1,
  "username": "admin",
  "email": "admin@admin.org",
  "first_name": "",
  "last_name": "",
  "role": "administrator"
}

Renovar token

post token/refresh

{ "refresh": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTc3ODU1Njc5MywiaWF0IjoxNzc4NDcwMzkzLCJqdGkiOiJlMDU0NTVkNWExYzA0YjFkYWZhNWZkNzFkZGM5Mzc1NyIsInVzZXJfaWQiOiIxIn0.wZcbBrGoxDMPjZxI-GR1GTAuRtzU4qaT0rgGS5Oblf4" }

response
{
  "access": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzc4NDcyMjQ5LCJpYXQiOjE3Nzg0NzA0NDksImp0aSI6IjE5YTM0ZDQ5Mzk3ZDQzNGE4NDlkZTgyYzdkNWQyNjQ0IiwidXNlcl9pZCI6IjEifQ.jowmaa5SXKIWpmUGLV0dj9CydYFtuecc7s_RveJvjLA"
}

Don confiao   verb

template http://localhost:7000/don_confiao/api/ Content-Type: application/json; Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzgwMDMxMTQ3LCJpYXQiOjE3ODAwMjkzNDcsImp0aSI6ImQ4ZjE1YTRmODc5NzRjZGViZDEzYzc1ZTU4ZDk3ZjEwIiwidXNlcl9pZCI6IjEifQ.kkQVT2pcYeS_TxlJ6QPU3rNOlZhOv96pyqVEGJI85KA

todas las rutas

get

response
{
  "sales": "http://localhost:7000/don_confiao/api/sales/",
  "catalog_sales": "http://localhost:7000/don_confiao/api/catalog_sales/",
  "customers": "http://localhost:7000/don_confiao/api/customers/",
  "products": "http://localhost:7000/don_confiao/api/products/",
  "reconciliate_jar": "http://localhost:7000/don_confiao/api/reconciliate_jar/"
}

customers

get customers/

response
[
  {
    "id": 1,
    "name": "Consumidor Final",
    "address": "",
    "email": "",
    "phone": "",
    "external_id": "2753"
  },
  ...
]

products

get products/

Productos Inactivos

get products/?active=false

Productos Activos

get products/?active=true

Traer todos los productos

get products/?active=all

Inactiva productos

patch products/1

{ "active": false }

Obtener Ventas por catalogo

get catalog_sales/

response
{
    "id": 6,
    "customer": 1,
    "date": "2024-09-02T00:00:00Z",
    "catalogsaleline_set": [
      {
        "id": 2,
        "catalog_sale": 6,
        "product": 1,
        "unit_price": "3000.00",
        "quantity": "2.00"
      },
      {
        "id": 3,
        "catalog_sale": 6,
        "product": 1,
        "unit_price": "5000.00",
        "quantity": "3.00"
      }
    ],
    "total": 21000.0
  }

*** Crear una venta por catalogo
post catalog_sales/

{"customer": "1", "date": "2024-09-02", "catalogsaleline_set": [{"product": "1", "quantity": "2", "unit_price": "3000"}, {"product": "1", "quantity": "3", "unit_price": "5000"}]}

*** Importar Clientes de Tryton
post  importar_productos_de_tryton

{}

**** response
#+begin_src json
[]