feat(#46): add fill_codes client script
This commit is contained in:
80
scripts/fill_sale_codes.py
Normal file
80
scripts/fill_sale_codes.py
Normal file
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import getpass
|
||||
import sys
|
||||
|
||||
import requests
|
||||
|
||||
|
||||
TOKEN_URL = "/api/token/"
|
||||
FILL_SALES_CODES_URL = "/don_confiao/api/sales/fill_codes/"
|
||||
FILL_CATALOG_SALES_CODES_URL = "/don_confiao/api/catalog_sales/fill_codes/"
|
||||
|
||||
|
||||
def get_credentials():
|
||||
username = input("Usuario: ")
|
||||
password = getpass.getpass("Contraseña: ")
|
||||
return username, password
|
||||
|
||||
|
||||
def get_token(domain, username, password):
|
||||
url = domain.rstrip("/") + TOKEN_URL
|
||||
response = requests.post(
|
||||
url, json={"username": username, "password": password}
|
||||
)
|
||||
if response.status_code != 200:
|
||||
print(
|
||||
f"Error al obtener token: {response.status_code} {response.text}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(1)
|
||||
return response.json()["access"]
|
||||
|
||||
|
||||
def fill_codes(domain, token, url):
|
||||
headers = {"Authorization": f"Bearer {token}"}
|
||||
full_url = domain.rstrip("/") + url
|
||||
response = requests.post(full_url, headers=headers)
|
||||
if response.status_code != 200:
|
||||
print(
|
||||
f"Error al llenar códigos ({url}): {response.status_code} {response.text}",
|
||||
file=sys.stderr,
|
||||
)
|
||||
sys.exit(1)
|
||||
return response.json()
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Asigna un código único a todas las ventas y pedidos que lo requieran."
|
||||
)
|
||||
parser.add_argument(
|
||||
"domain", help="Dominio del backend (ej: http://localhost:8000)"
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
||||
username, password = get_credentials()
|
||||
token = get_token(args.domain, username, password)
|
||||
print("Token obtenido correctamente.")
|
||||
|
||||
print("Asignando códigos a ventas...")
|
||||
sales_result = fill_codes(args.domain, token, FILL_SALES_CODES_URL)
|
||||
print(f" [OK] Ventas actualizadas: {sales_result['sales_updated']}")
|
||||
|
||||
print("Asignando códigos a pedidos de catálogo...")
|
||||
catalog_result = fill_codes(
|
||||
args.domain, token, FILL_CATALOG_SALES_CODES_URL
|
||||
)
|
||||
print(
|
||||
f" [OK] Pedidos de catálogo actualizados: "
|
||||
f"{catalog_result['catalog_sales_updated']}"
|
||||
)
|
||||
|
||||
print(
|
||||
f"\nResumen: {sales_result['sales_updated']} ventas, "
|
||||
f"{catalog_result['catalog_sales_updated']} pedidos de catálogo actualizados"
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user