refactor(core): move get_url to common serializer

reduces duplicated code

ref: #602 #605
This commit is contained in:
2025-02-16 02:44:31 +09:30
parent 460bf40175
commit 7cd4cb965b
29 changed files with 158 additions and 575 deletions

View File

@ -52,32 +52,10 @@ class ClusterModelSerializer(
def get_url(self, item) -> dict:
return {
'_self': item.get_url( request = self._context['view'].request ),
get_url = super().get_url( item = item )
get_url.update({
'external_links': reverse("v2:_api_v2_external_link-list", request=self._context['view'].request) + '?cluster=true',
'history': reverse(
"v2:_api_v2_model_history-list",
request=self._context['view'].request,
kwargs={
'model_class': self.Meta.model._meta.model_name,
'model_id': item.pk
}
),
'knowledge_base': reverse(
"v2:_api_v2_model_kb-list",
request=self._context['view'].request,
kwargs={
'model': self.Meta.model._meta.model_name,
'model_pk': item.pk
}
),
'notes': reverse(
"v2:_api_v2_cluster_note-list",
request=self._context['view'].request,
kwargs={
'model_id': item.pk
}
),
'service': reverse("v2:_api_v2_service_cluster-list", request=self._context['view'].request, kwargs={'cluster_id': item.pk}),
'tickets': reverse(
"v2:_api_v2_item_tickets-list",
@ -87,7 +65,10 @@ class ClusterModelSerializer(
'item_id': item.pk
}
)
}
})
return get_url
rendered_config = serializers.JSONField( read_only = True)

View File

@ -49,35 +49,6 @@ class ClusterTypeModelSerializer(
_urls = serializers.SerializerMethodField('get_url')
def get_url(self, item) -> dict:
return {
'_self': item.get_url( request = self._context['view'].request ),
'history': reverse(
"v2:_api_v2_model_history-list",
request=self._context['view'].request,
kwargs={
'model_class': self.Meta.model._meta.model_name,
'model_id': item.pk
}
),
'knowledge_base': reverse(
"v2:_api_v2_model_kb-list",
request=self._context['view'].request,
kwargs={
'model': self.Meta.model._meta.model_name,
'model_pk': item.pk
}
),
'notes': reverse(
"v2:_api_v2_cluster_type_note-list",
request=self._context['view'].request,
kwargs={
'model_id': item.pk
}
),
}
class Meta:

View File

@ -52,35 +52,6 @@ class PortModelSerializer(
_urls = serializers.SerializerMethodField('get_url')
def get_url(self, item) -> dict:
return {
'_self': item.get_url( request = self._context['view'].request ),
'history': reverse(
"v2:_api_v2_model_history-list",
request=self._context['view'].request,
kwargs={
'model_class': self.Meta.model._meta.model_name,
'model_id': item.pk
}
),
'knowledge_base': reverse(
"v2:_api_v2_model_kb-list",
request=self._context['view'].request,
kwargs={
'model': self.Meta.model._meta.model_name,
'model_pk': item.pk
}
),
'notes': reverse(
"v2:_api_v2_port_note-list",
request=self._context['view'].request,
kwargs={
'model_id': item.pk
}
),
}
class Meta:

View File

@ -54,32 +54,10 @@ class ServiceModelSerializer(
def get_url(self, item) -> dict:
return {
'_self': item.get_url( request = self._context['view'].request ),
get_url = super().get_url( item = item )
get_url.update({
'external_links': reverse("v2:_api_v2_external_link-list", request=self._context['view'].request) + '?service=true',
'history': reverse(
"v2:_api_v2_model_history-list",
request=self._context['view'].request,
kwargs={
'model_class': self.Meta.model._meta.model_name,
'model_id': item.pk
}
),
'knowledge_base': reverse(
"v2:_api_v2_model_kb-list",
request=self._context['view'].request,
kwargs={
'model': self.Meta.model._meta.model_name,
'model_pk': item.pk
}
),
'notes': reverse(
"v2:_api_v2_service_note-list",
request=self._context['view'].request,
kwargs={
'model_id': item.pk
}
),
'tickets': reverse(
"v2:_api_v2_item_tickets-list",
request=self._context['view'].request,
@ -88,7 +66,10 @@ class ServiceModelSerializer(
'item_id': item.pk
}
)
}
})
return get_url
rendered_config = serializers.JSONField( source='config_variables', read_only = True )