Add: API UserProfileAPIView.seen_post function
This commit is contained in:
parent
5f63ba5d4f
commit
b18728eef6
2 changed files with 49 additions and 0 deletions
7
archivist/apps/api/urls.py
Normal file
7
archivist/apps/api/urls.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
from django.urls import path
|
||||
|
||||
app_name = 'api'
|
||||
|
||||
urlpatterns = [
|
||||
path('profile/seen_posts/<str:submission_hash>', UserProfileAPIView.seen_post, name='user_seen_post'),
|
||||
]
|
42
archivist/apps/api/views.py
Normal file
42
archivist/apps/api/views.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
from django.http import JsonResponse
|
||||
|
||||
# Create your views here.
|
||||
|
||||
from django.contrib.auth.models import User, Group
|
||||
|
||||
from apps.user.models import UserProfile, SeenPost
|
||||
|
||||
from apps.sites.models import Submissions
|
||||
|
||||
class UserProfileAPIView(APIView):
|
||||
|
||||
def seen_post(request, submission_hash):
|
||||
|
||||
user = UserProfile.objects.get(user=request.user)
|
||||
|
||||
if request.method == 'GET':
|
||||
try:
|
||||
submission = Submissions.objects.get(submission_hash=submission_hash)
|
||||
|
||||
try:
|
||||
SeenPost.objects.get(user=user, post_id=submission.pk)
|
||||
|
||||
return JsonResponse({'seen': True}, status=status.HTTP_200_OK)
|
||||
|
||||
except SeenPost.DoesNotExist:
|
||||
return JsonResponse({'seen': False}, status=status.HTTP_200_OK)
|
||||
|
||||
except Submissions.DoesNotExist:
|
||||
return JsonResponse({'message': 'Submission not found.'}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
|
||||
if request.method == 'PUT':
|
||||
submission = Submissions.objects.get(submission_hash=submission_hash)
|
||||
|
||||
SeenPost.objects.get_or_create(user=user, post_id=submission.pk)
|
||||
|
||||
return JsonResponse({'seen': True}, status=status.HTTP_200_OK)
|
||||
|
||||
else:
|
||||
return JsonResponse({'message': 'Only GET and PUT requests are allowed.'}, status=status.HTTP_405_METHOD_NOT_ALLOWED)
|
||||
|
Loading…
Reference in a new issue