blob: 21c9b1a223d1e0a753561f0f019d6ad9cff9d9cf [file] [log] [blame]
Gabe Black90623222017-01-18 19:52:28 +00001from rest_framework.response import Response
2from rest_framework import serializers
3from api.xosapi_helpers import PlusModelSerializer, XOSViewSet, ReadOnlyField
4
5from services.passivetest.models import PassiveTestTenant, PassiveTestService
6
7def get_default_passivetest_service():
8 passivetest_services = PassiveTestService.get_service_objects().all()
9 if passivetest_services:
10 return passivetest_services[0]
11 return None
12
13class PassiveTestTenantSerializer(PlusModelSerializer):
14 id = ReadOnlyField()
15 provider_service = serializers.PrimaryKeyRelatedField(queryset=PassiveTestService.get_service_objects().all(), default=get_default_passivetest_service)
16 backend_status = ReadOnlyField()
17
18 humanReadableName = serializers.SerializerMethodField("getHumanReadableName")
19
20 class Meta:
21 model = PassiveTestTenant
22 fields = ('humanReadableName', 'id', 'provider_service', 'backend_status')
23
24 def getHumanReadableName(self, obj):
25 return obj.__unicode__()
26
27class PassiveTestTenantViewSet(XOSViewSet):
28 base_name = "passivetesttenant"
29 method_name = "passivetesttenant"
30 method_kind = "viewset"
31 queryset = PassiveTestTenant.get_tenant_objects().all()
32 serializer_class = PassiveTestTenantSerializer
33
34
35 def list(self, request):
36 queryset = self.filter_queryset(self.get_queryset())
37 serializer = self.get_serializer(queryset, many=True)
38 return Response(serializer.data)
39