serializers.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from rest_framework import serializers
  2. from circuits.models import Provider, CircuitType, Circuit
  3. from dcim.api.serializers import SiteNestedSerializer, InterfaceNestedSerializer
  4. from tenancy.api.serializers import TenantNestedSerializer
  5. #
  6. # Providers
  7. #
  8. class ProviderSerializer(serializers.ModelSerializer):
  9. class Meta:
  10. model = Provider
  11. fields = ['id', 'name', 'slug', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'comments']
  12. class ProviderNestedSerializer(ProviderSerializer):
  13. class Meta(ProviderSerializer.Meta):
  14. fields = ['id', 'name', 'slug']
  15. #
  16. # Circuit types
  17. #
  18. class CircuitTypeSerializer(serializers.ModelSerializer):
  19. class Meta:
  20. model = CircuitType
  21. fields = ['id', 'name', 'slug']
  22. class CircuitTypeNestedSerializer(CircuitTypeSerializer):
  23. class Meta(CircuitTypeSerializer.Meta):
  24. pass
  25. #
  26. # Circuits
  27. #
  28. class CircuitSerializer(serializers.ModelSerializer):
  29. provider = ProviderNestedSerializer()
  30. type = CircuitTypeNestedSerializer()
  31. tenant = TenantNestedSerializer()
  32. site = SiteNestedSerializer()
  33. interface = InterfaceNestedSerializer()
  34. class Meta:
  35. model = Circuit
  36. fields = ['id', 'cid', 'provider', 'type', 'tenant', 'site', 'interface', 'install_date', 'port_speed',
  37. 'upstream_speed', 'commit_rate', 'xconnect_id', 'comments']
  38. class CircuitNestedSerializer(CircuitSerializer):
  39. class Meta(CircuitSerializer.Meta):
  40. fields = ['id', 'cid']