Add contestAPI.
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
from utils.api import APIView
|
||||
|
||||
from ..models import ContestAnnouncement
|
||||
from ..models import ContestAnnouncement, Contest
|
||||
from ..serializers import ContestAnnouncementSerializer
|
||||
from ..serializers import ContestSerializer
|
||||
|
||||
|
||||
class ContestAnnouncementListAPI(APIView):
|
||||
@@ -14,3 +15,20 @@ class ContestAnnouncementListAPI(APIView):
|
||||
if max_id:
|
||||
data = data.filter(id__gt=max_id)
|
||||
return self.success(ContestAnnouncementSerializer(data, many=True).data)
|
||||
|
||||
|
||||
class ContestListAPI(APIView):
|
||||
def get(self, request):
|
||||
contest_id = request.GET.get("id")
|
||||
if contest_id:
|
||||
try:
|
||||
contest = Contest.objects.get(id=contest_id, visible=True)
|
||||
return self.success(ContestSerializer(contest).data)
|
||||
except Contest.DoesNotExist:
|
||||
return self.error("Contest Doesn't exist.")
|
||||
|
||||
contests = Contest.objects.filter(visible=True)
|
||||
keyword = request.GET.get("keyword")
|
||||
if keyword:
|
||||
contests = contests.filter(title__contains=keyword)
|
||||
return self.success(self.paginate_data(request, contests, ContestSerializer))
|
||||
|
||||
Reference in New Issue
Block a user