Skip to content

Commit dcb6d10

Browse files
authored
Merge pull request #141 from swecc-uw/get-user-stats
add user stats
2 parents 8a27711 + c9e747f commit dcb6d10

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

Diff for: server/engagement/urls.py

+5
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,9 @@
5858
view=views.UpdateDailyChecksView.as_view(),
5959
name="cohort-update-daily-check",
6060
),
61+
path(
62+
"user/<int:id>/",
63+
views.GetUserStats.as_view(),
64+
name="get-user-stats",
65+
)
6166
]

Diff for: server/engagement/views.py

+20
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
from django.db import transaction
2121
from django.http import JsonResponse
2222
from .models import CohortStats
23+
from leaderboard.models import LeetcodeStats, GitHubStats
24+
from leaderboard.serializers import LeetcodeStatsSerializer, GitHubStatsSerializer
2325
from .serializers import CohortStatsSerializer
2426
from cohort.models import Cohort
2527

@@ -209,6 +211,24 @@ def post(self, request, *args, **kwargs):
209211
)
210212

211213

214+
class GetUserStats(APIView):
215+
permission_classes = [IsVerified | IsApiKey]
216+
217+
def get(self, request, id):
218+
user = request.user if not id else get_object_or_404(User, id=id)
219+
220+
return Response(
221+
{
222+
"leetcode": LeetcodeStatsSerializer(
223+
LeetcodeStats.objects.get(user=user)
224+
).data,
225+
"github": GitHubStatsSerializer(
226+
GitHubStats.objects.get(user=user)
227+
).data,
228+
}
229+
)
230+
231+
212232
class QueryDiscordMessageStats(generics.ListAPIView):
213233
permission_classes = [IsAdmin]
214234

0 commit comments

Comments
 (0)