diff --git a/commcare_connect/opportunity/api/serializers.py b/commcare_connect/opportunity/api/serializers.py new file mode 100644 index 00000000..8d72c6e9 --- /dev/null +++ b/commcare_connect/opportunity/api/serializers.py @@ -0,0 +1,11 @@ +from rest_framework import serializers + +from commcare_connect.opportunity.models import Opportunity + + +class OpportunitySerializer(serializers.ModelSerializer): + organization = serializers.SlugRelatedField(read_only=True, slug_field="slug") + + class Meta: + model = Opportunity + fields = ["id", "name", "description", "date_created", "date_modified", "organization"] diff --git a/commcare_connect/opportunity/api/views.py b/commcare_connect/opportunity/api/views.py new file mode 100644 index 00000000..33d6d123 --- /dev/null +++ b/commcare_connect/opportunity/api/views.py @@ -0,0 +1,13 @@ +from rest_framework import viewsets +from rest_framework.permissions import IsAuthenticated + +from commcare_connect.opportunity.api.serializers import OpportunitySerializer +from commcare_connect.opportunity.models import Opportunity + + +class OpportunityViewSet(viewsets.ReadOnlyModelViewSet): + # TODO: Add filtering for CID users + queryset = Opportunity.objects.all() + serializer_class = OpportunitySerializer + # TODO: Add permission for CID users + permission_classes = [IsAuthenticated] diff --git a/config/api_router.py b/config/api_router.py index 16958a12..fe47d3e6 100644 --- a/config/api_router.py +++ b/config/api_router.py @@ -1,6 +1,7 @@ from django.conf import settings from rest_framework.routers import DefaultRouter, SimpleRouter +from commcare_connect.opportunity.api.views import OpportunityViewSet from commcare_connect.users.api.views import UserViewSet if settings.DEBUG: @@ -9,7 +10,7 @@ router = SimpleRouter() router.register("users", UserViewSet) - +router.register("v1/opportunity", OpportunityViewSet) app_name = "api" urlpatterns = router.urls