from django.shortcuts import render, redirect, get_object_or_404 from rest_framework.response import Response from rest_framework.decorators import api_view from .serializers import ReyMotaUserSerializer from .models import ReyMotaUser, PerfilUsuario from django.contrib import messages # Create your views here. def reactivar_cuenta(request, token): # Buscar el perfil sin generar error 404 perfil = PerfilUsuario.objects.filter(token_activacion=token).first() if not perfil: messages.error(request, "❌ Este enlace ya ha sido utilizado o es invalido.") return redirect("login") usuario = perfil.usuario if request.method == "POST": if perfil.acepto_politica: messages.error(request, "❌ Este enlace ya ha sido utilizado.") return redirect("login") # Marcar que el usuario ha aceptado la política perfil.acepto_politica = True perfil.token_activacion = None # Eliminar el token para que no se pueda reutilizar perfil.save() usuario.is_active = True usuario.save() messages.success(request, "Tu cuenta ha sido reactivada correctamente.") return redirect("login") return render(request, "registration/reactivar_cuenta.html", {"usuario": usuario}) @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)