소스 검색

Rename de Modelo Preport a ProgrammedReport y añadido comentarios en los modulos de api

Tomas Ponce Gessi 3 년 전
부모
커밋
17291b002c
8개의 변경된 파일23개의 추가작업 그리고 29개의 파일을 삭제
  1. 2 2
      app/api/admin.py
  2. 2 2
      app/api/migrations/0001_initial.py
  3. 1 1
      app/api/models.py
  4. 3 4
      app/api/permissions.py
  5. 3 3
      app/api/serializers.py
  6. 2 2
      app/api/urls.py
  7. 1 5
      app/api/validators.py
  8. 9 10
      app/api/views.py

+ 2 - 2
app/api/admin.py

@@ -1,5 +1,5 @@
 from django.contrib import admin
-from .models import Preport
+from .models import ProgrammedReport
 
 # Register your models here.
-admin.site.register(Preport)
+admin.site.register(ProgrammedReport)

+ 2 - 2
app/api/migrations/0001_initial.py

@@ -1,4 +1,4 @@
-# Generated by Django 4.0.4 on 2022-05-13 22:53
+# Generated by Django 4.0.4 on 2022-09-20 19:13
 
 import api.validators
 from django.db import migrations, models
@@ -13,7 +13,7 @@ class Migration(migrations.Migration):
 
     operations = [
         migrations.CreateModel(
-            name='Preport',
+            name='ProgrammedReport',
             fields=[
                 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                 ('user_id', models.CharField(max_length=2048)),

+ 1 - 1
app/api/models.py

@@ -2,7 +2,7 @@ from django.db import models
 from .validators import json_email_array, json_not_empty_string_array
 
 
-class Preport(models.Model):
+class ProgrammedReport(models.Model):
     user_id = models.CharField(max_length=2048)
     report_type = models.CharField(max_length=50)
     modules = models.JSONField(

+ 3 - 4
app/api/permissions.py

@@ -1,19 +1,18 @@
-from urllib import response
 from rest_framework import permissions
 from .client import get_user_id
 
+
 class IsOmixomUser(permissions.BasePermission):
     message = 'El token no pertenece a un usuario de Omixom'
 
-    # TODO: Dar permisos solo si el token pertenece a un usuario de Omixom
+    # Determina el usuario al que pertenece el Token de Autorizacion.
+    # Solo da permisos si el token es valido y en ese caso setea el user_id asociado a ese token.
     def has_permission(self, request, view):
         token = request.META.get('HTTP_AUTHORIZATION')
         response = get_user_id(token)
         if response:
-            #Guardar id de usuario
             request.GET._mutable = True
             request.GET['user_id'] = response.json()["user_id"]
             return response.status_code == 200
         else:
             return False
-        

+ 3 - 3
app/api/serializers.py

@@ -1,9 +1,9 @@
 from rest_framework import serializers
-from .models import Preport
+from .models import ProgrammedReport
 
 
-class PreportSerializer(serializers.ModelSerializer):
+class ProgrammedReportSerializer(serializers.ModelSerializer):
     class Meta:
-        model = Preport
+        model = ProgrammedReport
         fields = ["id", "user_id", "report_type", "modules",
                   "notified_emails", "last_report_date"]

+ 2 - 2
app/api/urls.py

@@ -1,8 +1,8 @@
 from rest_framework.routers import SimpleRouter
-from .views import PreportViewSet
+from .views import ProgrammedReportViewSet
 
 
 router = SimpleRouter()
-router.register(r'preports', PreportViewSet, "preport")
+router.register(r'preports', ProgrammedReportViewSet, "preport")
 
 urlpatterns = router.urls

+ 1 - 5
app/api/validators.py

@@ -1,11 +1,7 @@
-import json
-import re
 from typing import List
 from django.core.exceptions import ValidationError
 from django.core.validators import validate_email
 
-from django.db.models.lookups import Regex
-
 
 def json_email_array(val: List):
     '''
@@ -32,7 +28,7 @@ def json_not_empty_string_array(val):
     valid = True
 
     # Ser una lista no vacia
-    if(not (isinstance(val, list) and len(val) > 0)):
+    if (not (isinstance(val, list) and len(val) > 0)):
         valid = False
 
     # Ser una lista de strings

+ 9 - 10
app/api/views.py

@@ -1,17 +1,16 @@
 from rest_framework import viewsets
-from .models import Preport
-from .serializers import PreportSerializer
+from .models import ProgrammedReport
+from .serializers import ProgrammedReportSerializer
 from .permissions import IsOmixomUser
 
 
-class PreportViewSet(viewsets.ModelViewSet):
-    # TODO: Mostrar solo los reportes del usuario
+class ProgrammedReportViewSet(viewsets.ModelViewSet):
+    # El ViewSet solo es valido si el Token enviado es de un usuario de Omixom.
+    permission_classes = [IsOmixomUser]
+    serializer_class = ProgrammedReportSerializer
+
+    # Solo se devuelven los modelos para el user_id asociado al token. (Ver IsOmixomUser)
     def get_queryset(self):
         user_id = self.request.GET.get("user_id")
-        qs = Preport.objects.filter(user_id=user_id)
+        qs = ProgrammedReport.objects.filter(user_id=user_id)
         return qs
-
-    serializer_class = PreportSerializer
-
-    # TODO: Implementar la permission class para checkear el token del usuario y vea que clases
-    permission_classes = [IsOmixomUser]