2018-11-12 11:36:44 -05:00
|
|
|
from rest_framework import serializers
|
|
|
|
|
2020-06-29 03:50:05 -04:00
|
|
|
from extras import choices, models
|
2020-10-13 15:54:23 -04:00
|
|
|
from netbox.api import ChoiceField, WritableNestedSerializer
|
2021-03-12 13:30:23 -05:00
|
|
|
from netbox.api.serializers import NestedTagSerializer
|
2020-06-29 03:50:05 -04:00
|
|
|
from users.api.nested_serializers import NestedUserSerializer
|
2018-11-12 11:36:44 -05:00
|
|
|
|
|
|
|
__all__ = [
|
2020-06-05 15:48:36 -04:00
|
|
|
'NestedConfigContextSerializer',
|
2020-11-23 15:25:20 -05:00
|
|
|
'NestedCustomFieldSerializer',
|
2021-03-08 20:57:44 -05:00
|
|
|
'NestedCustomLinkSerializer',
|
2020-06-05 15:48:36 -04:00
|
|
|
'NestedExportTemplateSerializer',
|
2020-07-27 14:24:15 -04:00
|
|
|
'NestedImageAttachmentSerializer',
|
2020-06-29 03:50:05 -04:00
|
|
|
'NestedJobResultSerializer',
|
2021-03-16 15:00:08 -04:00
|
|
|
'NestedJournalEntrySerializer',
|
2021-03-12 13:30:23 -05:00
|
|
|
'NestedTagSerializer', # Defined in netbox.api.serializers
|
2021-03-09 09:22:58 -05:00
|
|
|
'NestedWebhookSerializer',
|
2018-11-12 11:36:44 -05:00
|
|
|
]
|
|
|
|
|
|
|
|
|
2021-03-09 09:22:58 -05:00
|
|
|
class NestedWebhookSerializer(WritableNestedSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:webhook-detail')
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = models.Webhook
|
2021-03-16 10:06:25 -04:00
|
|
|
fields = ['id', 'url', 'display', 'name']
|
2021-03-09 09:22:58 -05:00
|
|
|
|
|
|
|
|
2020-11-23 15:25:20 -05:00
|
|
|
class NestedCustomFieldSerializer(WritableNestedSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:customfield-detail')
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = models.CustomField
|
2021-03-16 10:06:25 -04:00
|
|
|
fields = ['id', 'url', 'display', 'name']
|
2020-11-23 15:25:20 -05:00
|
|
|
|
|
|
|
|
2021-03-08 20:57:44 -05:00
|
|
|
class NestedCustomLinkSerializer(WritableNestedSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:customlink-detail')
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = models.CustomLink
|
2021-03-16 10:06:25 -04:00
|
|
|
fields = ['id', 'url', 'display', 'name']
|
2021-03-08 20:57:44 -05:00
|
|
|
|
|
|
|
|
2020-06-05 15:48:36 -04:00
|
|
|
class NestedConfigContextSerializer(WritableNestedSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:configcontext-detail')
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = models.ConfigContext
|
2021-03-16 10:06:25 -04:00
|
|
|
fields = ['id', 'url', 'display', 'name']
|
2020-06-05 15:48:36 -04:00
|
|
|
|
|
|
|
|
|
|
|
class NestedExportTemplateSerializer(WritableNestedSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:exporttemplate-detail')
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = models.ExportTemplate
|
2021-03-16 10:06:25 -04:00
|
|
|
fields = ['id', 'url', 'display', 'name']
|
2020-06-05 15:48:36 -04:00
|
|
|
|
|
|
|
|
2020-07-27 14:24:15 -04:00
|
|
|
class NestedImageAttachmentSerializer(WritableNestedSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:imageattachment-detail')
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = models.ImageAttachment
|
2021-03-16 10:06:25 -04:00
|
|
|
fields = ['id', 'url', 'display', 'name', 'image']
|
2020-07-27 14:24:15 -04:00
|
|
|
|
|
|
|
|
2021-03-16 15:00:08 -04:00
|
|
|
class NestedJournalEntrySerializer(WritableNestedSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:journalentry-detail')
|
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = models.JournalEntry
|
|
|
|
fields = ['id', 'url', 'display', 'created']
|
|
|
|
|
|
|
|
|
2020-06-29 03:50:05 -04:00
|
|
|
class NestedJobResultSerializer(serializers.ModelSerializer):
|
|
|
|
url = serializers.HyperlinkedIdentityField(view_name='extras-api:jobresult-detail')
|
|
|
|
status = ChoiceField(choices=choices.JobResultStatusChoices)
|
|
|
|
user = NestedUserSerializer(
|
|
|
|
read_only=True
|
2018-11-12 11:36:44 -05:00
|
|
|
)
|
|
|
|
|
|
|
|
class Meta:
|
2020-06-29 03:50:05 -04:00
|
|
|
model = models.JobResult
|
|
|
|
fields = ['url', 'created', 'completed', 'user', 'status']
|