From f9428ec36500514722f9ec322885468d58247f33 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Mon, 8 Jul 2024 12:35:34 -0400
Subject: [PATCH] feat: update serializer Profile -> CBA

---
 program/serializers.py | 62 +++++++++++++++++++++---------------------
 1 file changed, 31 insertions(+), 31 deletions(-)

diff --git a/program/serializers.py b/program/serializers.py
index 179238ea..f1eda9b4 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -30,6 +30,7 @@ from django.core.exceptions import ObjectDoesNotExist
 from django.db import IntegrityError
 from django.utils import text, timezone
 from program.models import (
+    CBA,
     Category,
     FundingCategory,
     Host,
@@ -49,7 +50,6 @@ from program.models import (
     TimeSlot,
     Topic,
     Type,
-    UserProfile,
 )
 from program.typing import (
     Logo,
@@ -98,9 +98,9 @@ class ErrorSerializer(serializers.Serializer):
     code = serializers.CharField(allow_null=True)
 
 
-class ProfileSerializer(serializers.ModelSerializer):
+class CBASerializer(serializers.ModelSerializer):
     class Meta:
-        model = UserProfile
+        model = CBA
         read_only_fields = (
             "created_at",
             "created_by",
@@ -108,15 +108,15 @@ class ProfileSerializer(serializers.ModelSerializer):
             "updated_by",
         )
         fields = (
-            "cba_username",
-            "cba_user_token",
+            "username",
+            "user_token",
         ) + read_only_fields
 
 
 class UserSerializer(serializers.ModelSerializer):
     is_privileged = serializers.SerializerMethodField()
     permissions = serializers.SerializerMethodField()
-    profile = ProfileSerializer(required=False)
+    cba = CBASerializer(required=False)
     host_ids = serializers.PrimaryKeyRelatedField(
         many=True, queryset=Host.objects.all(), required=False, source="hosts"
     )
@@ -133,6 +133,7 @@ class UserSerializer(serializers.ModelSerializer):
             "host_ids",
         )
         fields = (
+            "cba",
             "email",
             "first_name",
             "is_active",
@@ -140,7 +141,6 @@ class UserSerializer(serializers.ModelSerializer):
             "is_superuser",
             "last_name",
             "password",
-            "profile",
             "username",
         ) + read_only_fields
 
@@ -157,17 +157,17 @@ class UserSerializer(serializers.ModelSerializer):
         Create and return a new User instance, given the validated data.
         """
 
-        profile_data = validated_data.pop("profile") if "profile" in validated_data else None
+        cba_data = validated_data.pop("cba") if "cba" in validated_data else None
 
         user = super(UserSerializer, self).create(validated_data)
         user.date_joined = timezone.now()
         user.set_password(validated_data["password"])
         user.save()
 
-        if profile_data:
-            UserProfile.objects.create(
-                cba_username=profile_data.get("cba_username").strip(),
-                cba_user_token=profile_data.get("cba_user_token").strip(),
+        if cba_data:
+            CBA.objects.create(
+                username=cba_data.get("username").strip(),
+                user_token=cba_data.get("user_token").strip(),
                 created_by=self.context.get("request").user.username,
                 user=user,
             )
@@ -197,42 +197,42 @@ class UserSerializer(serializers.ModelSerializer):
         if "is_superuser" in validated_data:
             instance.is_superuser = validated_data.get("is_superuser")
 
-        profile_data = validated_data.pop("profile") if "profile" in validated_data else None
+        cba_data = validated_data.pop("cba") if "cba" in validated_data else None
 
         try:
-            profile = instance.profile
+            cba = instance.cba
         except ObjectDoesNotExist:
-            profile = None
+            cba = None
 
-        if profile_data:
+        if cba_data:
             user = self.context.get("request").user
 
-            if profile:
-                # having the update_user_profile permission overrides being the user
-                if not (user.has_perm("update_user_profile") or user.id == instance.id):
+            if cba:
+                # having the update_cba permission overrides being the user
+                if not (user.has_perm("update_cba") or user.id == instance.id):
                     raise exceptions.PermissionDenied(
-                        detail="You do not have permission to update this user profile."
+                        detail="You do not have permission to update this user CBA profile."
                     )
 
-                if "cba_username" in profile_data:
-                    profile.cba_username = profile_data.get("cba_username")
+                if "username" in cba_data:
+                    cba.username = cba_data.get("username")
 
-                if "cba_user_token" in profile_data:
-                    profile.cba_user_token = profile_data.get("cba_user_token")
+                if "user_token" in cba_data:
+                    cba.user_token = cba_data.get("user_token")
 
-                profile.updated_by = self.context.get("request").user.username
-                profile.save()
+                cba.updated_by = self.context.get("request").user.username
+                cba.save()
             else:
-                # having the create_user_profile permission overrides being the user
-                if not (user.has_perm("create_user_profile") or user.id == instance.id):
+                # having the create_cba permission overrides being the user
+                if not (user.has_perm("create_cba") or user.id == instance.id):
                     raise exceptions.PermissionDenied(
-                        detail="You do not have permission to create this user profile."
+                        detail="You do not have permission to create this user CBA profile."
                     )
 
-                UserProfile.objects.create(
+                CBA.objects.create(
                     created_by=self.context.get("request").user.username,
                     user=instance,
-                    **profile_data,
+                    **cba_data,
                 )
 
         instance.save()
-- 
GitLab