From 88533a2ad8b1c726669257cc4c4ba98a9c375139 Mon Sep 17 00:00:00 2001 From: Usman Sidiq Date: Mon, 30 Mar 2020 21:00:15 +0700 Subject: [PATCH 1/4] [CHORES] Try migrate database --- registrasi/migrations/0001_initial.py | 2 +- requirements.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/registrasi/migrations/0001_initial.py b/registrasi/migrations/0001_initial.py index f139314..006d438 100644 --- a/registrasi/migrations/0001_initial.py +++ b/registrasi/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 2.1.5 on 2020-03-09 01:31 +# Generated by Django 2.1.5 on 2020-03-30 13:53 from django.db import migrations, models import registrasi.managers diff --git a/requirements.txt b/requirements.txt index ab5cd24..170d0a8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,7 +24,7 @@ lazy-object-proxy==1.3.1 mccabe==0.6.1 oauthlib==3.1.0 pip==20.0.2 -psycopg2==2.8.4 +psycopg2 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycparser==2.19 -- GitLab From d28846b89c05243519adfef424a61c0c0d00951e Mon Sep 17 00:00:00 2001 From: Usman Sidiq Date: Sat, 2 May 2020 23:52:35 +0700 Subject: [PATCH 2/4] [GREEN] Done fitur komentar, not tested --- informasi_fasilitas/urls.py | 2 ++ informasi_fasilitas/views.py | 46 ++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/informasi_fasilitas/urls.py b/informasi_fasilitas/urls.py index caf571e..5b13019 100644 --- a/informasi_fasilitas/urls.py +++ b/informasi_fasilitas/urls.py @@ -12,4 +12,6 @@ urlpatterns = [ path('lokasi/detail-fasilitas///', views.detail_fasilitas, name='detail-fasilitas'), path('lokasi/update-fasilitas///', views.update_fasilitas, name='update-fasilitas'), path('lokasi/like-fasilitas////', views.update_like_fasilitas, name='update-like-fasilitas'), + path('lokasi/add-komentar///', views.add_komentar, name='add-komentar'), + path('lokasi/list-komentar///', views.list_komentar, name='list-komentar'), ] \ No newline at end of file diff --git a/informasi_fasilitas/views.py b/informasi_fasilitas/views.py index edf9f58..8d3efbb 100644 --- a/informasi_fasilitas/views.py +++ b/informasi_fasilitas/views.py @@ -233,5 +233,51 @@ 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, id): + 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[komentar.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 -- GitLab From 715753de0e67722aa1c515cf41072cdcc470d125 Mon Sep 17 00:00:00 2001 From: Bayukanta Gunawan Date: Sun, 3 May 2020 00:38:26 +0700 Subject: [PATCH 3/4] [GREEN] add api post add_fasilitas, and get list_fasilitas --- informasi_fasilitas/urls.py | 2 + informasi_fasilitas/views.py | 201 +++++++++++++++++++++++++++++++++++ 2 files changed, 203 insertions(+) diff --git a/informasi_fasilitas/urls.py b/informasi_fasilitas/urls.py index 5439a2d..a4dc730 100644 --- a/informasi_fasilitas/urls.py +++ b/informasi_fasilitas/urls.py @@ -9,4 +9,6 @@ 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') ] \ No newline at end of file diff --git a/informasi_fasilitas/views.py b/informasi_fasilitas/views.py index 55b47f2..1e9ea98 100644 --- a/informasi_fasilitas/views.py +++ b/informasi_fasilitas/views.py @@ -137,5 +137,206 @@ def detail_fasilitas(request, nama_lokasi, id): return JsonResponse({'response' : request_error_message("get")}, 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(['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 -- GitLab From 3e1306db20520d112456b64c289af9efc1327347 Mon Sep 17 00:00:00 2001 From: Usman Sidiq Date: Sun, 3 May 2020 03:39:07 +0700 Subject: [PATCH 4/4] [CHORES] fix syntax error after solving merge conflicts --- informasi_fasilitas/urls.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/informasi_fasilitas/urls.py b/informasi_fasilitas/urls.py index 5103e6d..0a97ecb 100644 --- a/informasi_fasilitas/urls.py +++ b/informasi_fasilitas/urls.py @@ -11,7 +11,7 @@ urlpatterns = [ 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/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 -- GitLab