Jelajahi Sumber

Api para extraer datos

Celestino Rey 1 tahun lalu
induk
melakukan
507680a362
5 mengubah file dengan 25 tambahan dan 6 penghapusan
  1. 1 1
      K8S/Makefile
  2. 1 1
      K8S/env-prod-configmap.yaml
  3. 3 0
      src/finanzas/urls.py
  4. 18 4
      src/finanzas/views.py
  5. 2 0
      src/misfinanzas/urls.py

+ 1 - 1
K8S/Makefile

@@ -1,6 +1,6 @@
 export ARQUITECTURA := $(shell lscpu |grep itectur | tr -d ' '| cut -f2 -d':')
 export ARQUITECTURA := $(shell lscpu |grep itectur | tr -d ' '| cut -f2 -d':')
 export REGISTRY=registry.reymota.es
 export REGISTRY=registry.reymota.es
-export IMG_VERSION = 0.17
+export IMG_VERSION = 0.18
 export IMG_NGINX_VERSION = 1.0
 export IMG_NGINX_VERSION = 1.0
 
 
 # limpia todo
 # limpia todo

+ 1 - 1
K8S/env-prod-configmap.yaml

@@ -2,7 +2,7 @@ apiVersion: v1
 data:
 data:
   DEBUG: "False"
   DEBUG: "False"
   ENTORNO: "Producción"
   ENTORNO: "Producción"
-  APP_VERSION: 15.0.3
+  APP_VERSION: 15.0.4
   SECRET_KEY: change_me
   SECRET_KEY: change_me
   SQL_HOST: postgresql
   SQL_HOST: postgresql
   SQL_PORT: "5432"
   SQL_PORT: "5432"

+ 3 - 0
src/finanzas/urls.py

@@ -13,4 +13,7 @@ urlpatterns = [
     path('cuentas/', views.listar_cuentas, name='listar_cuentas'),
     path('cuentas/', views.listar_cuentas, name='listar_cuentas'),
     path('cuentas/<int:cuenta_id>/editar/', views.editar_cuenta, name='editar_cuenta'),
     path('cuentas/<int:cuenta_id>/editar/', views.editar_cuenta, name='editar_cuenta'),
     path('cuentas/<int:cuenta_id>/eliminar/', views.eliminar_cuenta, name='eliminar_cuenta'),
     path('cuentas/<int:cuenta_id>/eliminar/', views.eliminar_cuenta, name='eliminar_cuenta'),
+    # API
+    path('api/datos/', views.api_datos_completos, name='api_datos_completos'),
+
 ]
 ]

+ 18 - 4
src/finanzas/views.py

@@ -1,15 +1,18 @@
 from django.shortcuts import render, redirect, get_object_or_404
 from django.shortcuts import render, redirect, get_object_or_404
+from django.http import JsonResponse
 from decimal import Decimal, InvalidOperation
 from decimal import Decimal, InvalidOperation
+from django.db import models as db_models
+from django.contrib.auth.decorators import login_required
+from django.contrib import messages
+from django.utils.timezone import now
+from django.core.serializers import serialize
+
 import logging
 import logging
 import re
 import re
-from django.db import models as db_models
 
 
 from accounts import models
 from accounts import models
 from .models import Movimiento, Cuenta, MovimientoFrecuente, Categoria
 from .models import Movimiento, Cuenta, MovimientoFrecuente, Categoria
 from .forms import MovimientoForm, FiltroForm, CuentaForm
 from .forms import MovimientoForm, FiltroForm, CuentaForm
-from django.contrib.auth.decorators import login_required
-from django.contrib import messages
-from django.utils.timezone import now
 
 
 logger = logging.getLogger(__name__)
 logger = logging.getLogger(__name__)
 
 
@@ -259,3 +262,14 @@ def eliminar_cuenta(request, cuenta_id):
         'cuenta': cuenta,
         'cuenta': cuenta,
         'tiene_movimientos': tiene_movimientos,
         'tiene_movimientos': tiene_movimientos,
     })
     })
+
+
+@login_required
+def api_datos_completos(request):
+    data = {
+        'cuentas': list(Cuenta.objects.filter(usuario=request.user).values()),
+        'movimientos': list(Movimiento.objects.filter(usuario=request.user).values()),
+        'categorias': list(Categoria.objects.all().values()),
+        'favoritos': list(MovimientoFrecuente.objects.filter(usuario=request.user).values()),
+    }
+    return JsonResponse(data, safe=False, json_dumps_params={'ensure_ascii': False, 'indent': 2})

+ 2 - 0
src/misfinanzas/urls.py

@@ -29,6 +29,8 @@ urlpatterns = [
 
 
     path('', include('finanzas.urls')),
     path('', include('finanzas.urls')),
 
 
+    path('usuarios/', include("reymotausers.urls")),
+
     path("acerca-de/", views.acerca_de, name="acerca_de"),
     path("acerca-de/", views.acerca_de, name="acerca_de"),
 
 
 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)