Skip to content

Commit 4ec93c5

Browse files
committed
Feature: Add feature to view remaining accounts
- Prospectus API does not show the remaining accounts
1 parent 1eb4d2c commit 4ec93c5

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

sponsor/routers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
def get_router():
77
router = DefaultRouter()
8+
router.register("remaining", SponsorRemainingAccountViewSet, basename="remaining")
89
router.register("prospectus", SponsorLevelViewSet, basename="prospectus")
910
router.register("", SponsorViewSet, basename="sponsor")
1011

sponsor/serializers.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,25 @@ class Meta:
3535

3636

3737
class SponsorLevelSerializer(ModelSerializer):
38+
class Meta:
39+
model = SponsorLevel
40+
fields = [
41+
"name",
42+
"price",
43+
"desc",
44+
"limit",
45+
"id",
46+
] # TODO: Add fields to show
47+
48+
49+
class SponsorRemainingAccountSerializer(ModelSerializer):
3850
remaining = SerializerMethodField()
3951

4052
class Meta:
4153
model = SponsorLevel
4254
fields = [
4355
"name",
4456
"price",
45-
"desc",
4657
"limit",
4758
"remaining",
4859
"id",

sponsor/viewsets.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
from sponsor.models import Sponsor, SponsorLevel
66
from sponsor.permissions import IsOwnerOrReadOnly, OwnerOnly
7-
from sponsor.serializers import SponsorListSerializer, SponsorSerializer, SponsorLevelSerializer
7+
from sponsor.serializers import (
8+
SponsorListSerializer, SponsorSerializer, SponsorLevelSerializer, SponsorRemainingAccountSerializer)
89

910

1011
class SponsorViewSet(ModelViewSet):
@@ -58,3 +59,17 @@ def list(self, request, *args, **kwargs):
5859
serializer = SponsorLevelSerializer(queryset, many=True)
5960

6061
return Response(serializer.data)
62+
63+
64+
class SponsorRemainingAccountViewSet(ModelViewSet):
65+
serializer_class = SponsorLevelSerializer
66+
http_method_names = ["get"]
67+
68+
def get_queryset(self):
69+
return SponsorLevel.objects.all()
70+
71+
def list(self, request, *args, **kwargs):
72+
queryset = SponsorLevel.objects.all().order_by("-price")
73+
serializer = SponsorRemainingAccountSerializer(queryset, many=True)
74+
75+
return Response(serializer.data)

0 commit comments

Comments
 (0)