diff --git a/app/devops/serializers/centurionaudit_gitrepository.py b/app/devops/serializers/centurionaudit_gitrepository.py new file mode 100644 index 00000000..8c4af9ed --- /dev/null +++ b/app/devops/serializers/centurionaudit_gitrepository.py @@ -0,0 +1,56 @@ +from rest_framework import serializers + +from drf_spectacular.utils import extend_schema_serializer + +from api.serializers import common + +from centurion.models.meta import GitHubRepositoryAuditHistory # pylint: disable=E0401:import-error disable=E0611:no-name-in-module + +from core.serializers.centurionaudit import ( + BaseSerializer, + ViewSerializer as AuditHistoryViewSerializer +) + + + + +@extend_schema_serializer(component_name = 'GitHubRepositoryModelSerializer') +class ModelSerializer( + common.CommonModelSerializer, + BaseSerializer +): + """Git Group Audit History Base Model""" + + + _urls = serializers.SerializerMethodField('get_url') + + + class Meta: + + model = GitHubRepositoryAuditHistory + + fields = [ + 'id', + 'organization', + 'display_name', + 'content_type', + 'model', + 'before', + 'after', + 'action', + 'user', + 'created', + '_urls', + ] + + read_only_fields = fields + + + +@extend_schema_serializer(component_name = 'GitHubRepositoryViewSerializer') +class ViewSerializer( + ModelSerializer, + AuditHistoryViewSerializer, +): + """Git Group Audit History Base View Model""" + pass diff --git a/app/devops/serializers/centurionmodelnote_gitrepository.py b/app/devops/serializers/centurionmodelnote_gitrepository.py new file mode 100644 index 00000000..c51c52af --- /dev/null +++ b/app/devops/serializers/centurionmodelnote_gitrepository.py @@ -0,0 +1,87 @@ +from rest_framework import serializers + +from drf_spectacular.utils import extend_schema_serializer + +from access.serializers.organization import (TenantBaseSerializer) + +from centurion.models.meta import GitRepositoryCenturionModelNote # pylint: disable=E0401:import-error disable=E0611:no-name-in-module + +from core.serializers.centurionmodelnote import ( # pylint: disable=W0611:unused-import + BaseSerializer, + ModelSerializer as BaseModelModelSerializer, + ViewSerializer as BaseModelViewSerializer +) + + + +@extend_schema_serializer(component_name = 'GitRepositoryBaseModelSerializer') +class ModelSerializer( + BaseModelModelSerializer, +): + + + _urls = serializers.SerializerMethodField('get_url') + + def get_url(self, item) -> dict: + + return { + '_self': item.get_url( request = self._context['view'].request ), + } + + + class Meta: + + model = GitRepositoryCenturionModelNote + + fields = [ + 'id', + 'organization', + 'display_name', + 'body', + 'created_by', + 'modified_by', + 'content_type', + 'model', + 'created', + 'modified', + '_urls', + ] + + read_only_fields = [ + 'id', + 'display_name', + 'organization', + 'created_by', + 'modified_by', + 'content_type', + 'model', + 'created', + 'modified', + '_urls', + ] + + + + def validate(self, attrs): + + is_valid = False + + note_model = self.Meta.model.model.field.related_model + + attrs['model'] = note_model.objects.get( + id = int( self.context['view'].kwargs['model_id'] ) + ) + + + is_valid = super().validate(attrs) + + return is_valid + + +@extend_schema_serializer(component_name = 'GitRepositoryBaseViewSerializer') +class ViewSerializer( + ModelSerializer, + BaseModelViewSerializer, +): + + organization = TenantBaseSerializer( many = False, read_only = True )