diff --git a/informasi_fasilitas/urls.py b/informasi_fasilitas/urls.py index caf571e5abfc07bc10616ede843d3cee8e2fac7e..0a97ecbfb4605c135ef6b5862331bca797f68550 100644 --- a/informasi_fasilitas/urls.py +++ b/informasi_fasilitas/urls.py @@ -10,6 +10,8 @@ urlpatterns = [ path('lokasi/add-fasilitas//', views.add_fasilitas, name='add-fasilitas'), path('lokasi/list-fasilitas//', views.list_fasilitas, name='list-fasilitas'), path('lokasi/detail-fasilitas///', views.detail_fasilitas, name='detail-fasilitas'), + path('lokasi/add-komentar//', views.add_komentar, name='add-komentar'), + path('lokasi/list-komentar///', views.list_komentar, name='list-komentar'), path('lokasi/update-fasilitas///', views.update_fasilitas, name='update-fasilitas'), path('lokasi/like-fasilitas////', views.update_like_fasilitas, name='update-like-fasilitas'), ] \ No newline at end of file diff --git a/informasi_fasilitas/views.py b/informasi_fasilitas/views.py index edf9f583ab139dba801a709c51118879ef635225..9a0505724051e69a90bc8eda4542dc9bddbfc412 100644 --- a/informasi_fasilitas/views.py +++ b/informasi_fasilitas/views.py @@ -233,5 +233,50 @@ def update_like_fasilitas(request, nama_lokasi, id, operation): return JsonResponse({'response': "you've successfuly {}d this facility".format(operation)}, status = 201) except KeyError as e: return JsonResponse({'response': missing_key_message(str(e))}, status = 500) + except Exception as e: + return JsonResponse({'response': str(e)}, status = 404) + +@api_view(['POST']) +@authentication_classes([TokenAuthentication]) +@permission_classes([IsAuthenticated]) +def add_komentar(request, nama_lokasi): + try: + if request.method == 'POST': + lokasi = Lokasi.objects.get(name = nama_lokasi) + fasilitas = Fasilitas.objects.get(lokasi=lokasi, id=id) + user = User.objects.get(email=str(request.user)) + deskripsi = request.POST['deskripsi'] + komentar = Komentar.objects.create(fasilitas=fasilitas, + user=user, + deskripsi=deskripsi) + return JsonResponse({'response' : 'komentar added', 'id':komentar.id}, status = 201) + else: + return JsonResponse({'response' : request_error_message("post")}, status = 400) + except KeyError as e: + return JsonResponse({'response': missing_key_message(str(e))}, status = 500) + except Exception as e: + return JsonResponse({'response': str(e)}, status = 404) + + +@api_view(['GET']) +@authentication_classes([]) +@permission_classes([]) +def list_komentar(request, nama_lokasi, id): + try: + if request.method == 'GET': + lokasi = Lokasi.objects.get(name=nama_lokasi) + fasilitas = Fasilitas.objects.get(lokasi=lokasi, id=id) + list_komentar = Komentar.objects.filter(fasilitas=fasilitas) + return_json = {} + for komentar in list_komentar: + return_json[komentar.id] = {} + komentar_details = return_json[fasilitas.id] + komentar_details["id"] = komentar.id + komentar_details["deskripsi"] = komentar.deskripsi + komentar_details["creator"] = komentar.user.last_name + komentar_details["date_time"] = komentar.date_time + return JsonResponse(return_json, status = 200) + except KeyError as e: + return JsonResponse({'response': missing_key_message(str(e))}, status = 500) except Exception as e: return JsonResponse({'response': str(e)}, status = 404) \ No newline at end of file