Browse Source

Añado api para usuarios

politica
Celestino Rey 10 months ago
parent
commit
6c3828ba5f
8 changed files with 94 additions and 1 deletions
  1. +1
    -1
      ReyMotaAppsDj/K8S/Makefile
  2. +2
    -0
      ReyMotaAppsDj/reymota/reymota/urls.py
  3. +0
    -0
      ReyMotaAppsDj/reymota/reymotausers/management/__init__.py
  4. +0
    -0
      ReyMotaAppsDj/reymota/reymotausers/management/commands/__init__.py
  5. +48
    -0
      ReyMotaAppsDj/reymota/reymotausers/management/commands/importar_usuarios.py
  6. +8
    -0
      ReyMotaAppsDj/reymota/reymotausers/serializers.py
  7. +9
    -0
      ReyMotaAppsDj/reymota/reymotausers/urls.py
  8. +26
    -0
      ReyMotaAppsDj/reymota/reymotausers/views.py

+ 1
- 1
ReyMotaAppsDj/K8S/Makefile View File

@ -1,7 +1,7 @@
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.cube.local #export REGISTRY=registry.cube.local
export REGISTRY=registry.reymota.es export REGISTRY=registry.reymota.es
export IMG_VERSION = 0.49
export IMG_VERSION = 0.51
export IMG_NGINX_VERSION = 1.0 export IMG_NGINX_VERSION = 1.0
# limpia todo # limpia todo


+ 2
- 0
ReyMotaAppsDj/reymota/reymota/urls.py View File

@ -38,4 +38,6 @@ urlpatterns = [
path('entorno/', views.ver_variables_entorno, name='ver_variables_entorno'), path('entorno/', views.ver_variables_entorno, name='ver_variables_entorno'),
path('usuarios/', include("reymotausers.urls")),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

+ 0
- 0
ReyMotaAppsDj/reymota/reymotausers/management/__init__.py View File


+ 0
- 0
ReyMotaAppsDj/reymota/reymotausers/management/commands/__init__.py View File


+ 48
- 0
ReyMotaAppsDj/reymota/reymotausers/management/commands/importar_usuarios.py View File

@ -0,0 +1,48 @@
import json
from django.core.management.base import BaseCommand
from reymotausers.models import ReyMotaUser
class Command(BaseCommand):
help = "Importa usuarios desde un archivo JSON"
def add_arguments(self, parser):
parser.add_argument('archivo_json', type=str, help="Ruta del archivo JSON")
def handle(self, *args, **kwargs):
archivo_json = kwargs['archivo_json']
try:
with open(archivo_json, 'r', encoding='utf-8') as file:
datos = json.load(file)
self.stdout.write(self.style.WARNING(f"\nSe encontraron {len(datos)} usuarios en el archivo '{archivo_json}'."))
confirmar = input("¿Deseas continuar con la importación? (s/n): ").strip().lower()
if confirmar != 's':
self.stdout.write(self.style.ERROR("Importación cancelada."))
return
usuarios_creados = 0
for usuario_data in datos:
creado = ReyMotaUser.objects.create(
foto=usuario_data['foto'],
password=usuario_data['password'],
is_superuser=usuario_data['is_superuser'],
is_staff=usuario_data['is_staff'],
is_active=usuario_data['is_active'],
nombre=usuario_data['nombre'],
email=usuario_data['email'],
groups=usuario_data['groups'],
user_permissions=usuario_data['user_permissions'],
last_login=usuario_data['last_login']
)
if creado:
usuarios_creados += 1
self.stdout.write(self.style.SUCCESS(f'Se importaron {usuarios_creados} usuarios correctamente.'))
except FileNotFoundError:
self.stderr.write(self.style.ERROR(f"El archivo {archivo_json} no se encontró."))
except json.JSONDecodeError:
self.stderr.write(self.style.ERROR("Error al leer el archivo JSON. Asegúrate de que el formato sea correcto."))

+ 8
- 0
ReyMotaAppsDj/reymota/reymotausers/serializers.py View File

@ -0,0 +1,8 @@
from rest_framework import serializers
from .models import ReyMotaUser
class ReyMotaUserSerializer(serializers.ModelSerializer):
class Meta:
model = ReyMotaUser
fields = '__all__' # Incluir todos los campos del modelo

+ 9
- 0
ReyMotaAppsDj/reymota/reymotausers/urls.py View File

@ -0,0 +1,9 @@
from django.urls import path
from . import views
from .views import api_lista_usuarios, api_detalle_usuario
urlpatterns = [
path('api/usuarios/', api_lista_usuarios, name='api_lista_usuarios'),
path('api/usuarios/<int:usuario_id>/', api_detalle_usuario, name='api_detalle_usuario'),
]

+ 26
- 0
ReyMotaAppsDj/reymota/reymotausers/views.py View File

@ -1,3 +1,29 @@
from django.shortcuts import render from django.shortcuts import render
from rest_framework.response import Response
from rest_framework.decorators import api_view
from .serializers import ReyMotaUserSerializer
from .models import ReyMotaUser
# Create your views here. # Create your views here.
@api_view(['GET'])
def api_lista_usuarios(request):
"""Devuelve la lista de todos los usuarios."""
usuarios = ReyMotaUser.objects.all()
serializer = ReyMotaUserSerializer(usuarios, many=True)
return Response(serializer.data)
@api_view(['GET'])
def api_detalle_usuario(request, usuario_id):
"""Devuelve los detalles de un usuario específico."""
try:
usuario = ReyMotaUser.objects.get(id=usuario_id)
serializer = ReyMotaUserSerializer(usuario)
return Response(serializer.data)
except ReyMotaUser.DoesNotExist:
return Response({'error': 'Canción no encontrada'}, status=404)

Loading…
Cancel
Save