From bd6b1a5f72dc18308b4bed0428a3fcb816d1a7f0 Mon Sep 17 00:00:00 2001 From: Adib Yusril Wafi <adib.yusril@ui.ac.id> Date: Sun, 6 Oct 2019 19:45:54 +0700 Subject: [PATCH 1/4] initial commit --- core/migrations/0020_merge_20191006_1855.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 core/migrations/0020_merge_20191006_1855.py diff --git a/core/migrations/0020_merge_20191006_1855.py b/core/migrations/0020_merge_20191006_1855.py new file mode 100644 index 00000000..d1ed929b --- /dev/null +++ b/core/migrations/0020_merge_20191006_1855.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.5 on 2019-10-06 11:55 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0017_vacancy_amount'), + ('core', '0019_merge_20191006_0852'), + ('core', '0014_auto_20191004_1340'), + ] + + operations = [ + ] -- GitLab From 0223a8c6257e17ce33d3938beaa072f0793fffc9 Mon Sep 17 00:00:00 2001 From: Adib Yusril Wafi <adib.yusril@ui.ac.id> Date: Sun, 6 Oct 2019 20:45:16 +0700 Subject: [PATCH 2/4] [RED] Add test for updating feedback --- core/tests/test_feedbacks.py | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/core/tests/test_feedbacks.py b/core/tests/test_feedbacks.py index f45dba9d..240bdb55 100644 --- a/core/tests/test_feedbacks.py +++ b/core/tests/test_feedbacks.py @@ -256,3 +256,50 @@ class FeedbacksTests(APITestCase): response = self.client.delete(feedbacks_url) self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) + + @requests_mock.Mocker() + def test_feedbacks_update_with_exist_data_and_with_data_id(self, m): + self.login(m) + + # test_feedbacks_update_with_exist_data_and_with_data_id + + new_feedback = Feedback(title="a title", content="a content") + new_feedback.save() + feedback_id = new_feedback.id + + feedbacks_url = '/api/feedbacks/' + str(feedback_id) + '/' + response = self.client.put(feedbacks_url, + {"content": "updated content", "title": "updated title"}) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response.data["title"], "updated title") + self.assertEqual(response.data["content"], "updated content") + self.assertEqual(response.data["detail"], "Feedback with id {} was updated".format(feedback_id)) + + @requests_mock.Mocker() + def test_feedbacks_update_with_not_exist_data_and_with_data_id(self, m): + self.login(m) + + # test_feedbacks_delete_with_not_exist_data_and_with_data_id + new_feedback = Feedback(title="a title", content="a content") + new_feedback.save() + feedback_id = new_feedback.id + new_feedback.delete() + + feedbacks_url = '/api/feedbacks/' + str(feedback_id) + '/' + response = self.client.put(feedbacks_url, + {"content": "updated content", "title": "updated title"}) + + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual(response.data["detail"], "Feedback with id {} doesn't exist".format(feedback_id)) + + @requests_mock.Mocker() + def test_feedbacks_delete_without_data_id(self, m): + self.login(m) + + # test_feedbacks_delete_without_data_id + feedbacks_url = '/api/feedbacks/' + response = self.client.put(feedbacks_url, + {"content": "updated content", "title": "updated title"}) + + self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) -- GitLab From a09cf69bcbbb6ef0edd74ec3104a5da8d2f350d0 Mon Sep 17 00:00:00 2001 From: Adib Yusril Wafi <adib.yusril@ui.ac.id> Date: Sun, 6 Oct 2019 21:06:31 +0700 Subject: [PATCH 3/4] [GREEN] Add update feedback implementation --- core/views/feedbacks.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/core/views/feedbacks.py b/core/views/feedbacks.py index 42464b65..fa357206 100644 --- a/core/views/feedbacks.py +++ b/core/views/feedbacks.py @@ -61,3 +61,26 @@ class FeedbackViewSet(viewsets.GenericViewSet): message = {"detail": "Feedback with id {} doesn't exist".format(pk)} print(message) return Response(message, status=status.HTTP_400_BAD_REQUEST) + + def update(self, request, pk): + """ + Update feedback {id} + --- + """ + if Feedback.objects.filter(id=pk).count() != 0: + print (request.data) + update_feedback = Feedback.objects.filter(id=pk) + update_feedback.update(title=request.data['title'], content=request.data['content']) + + update_feedback = Feedback.objects.get(id=pk) + serialized_update_feedback = FeedbackSerializer(update_feedback, context={'request': request}) + serialized_update_feedback_data = serialized_update_feedback.data + + message = {"detail": "Feedback with id {} was updated".format(pk)} + message.update(serialized_update_feedback_data) + print(message) + return Response(message, status=status.HTTP_200_OK) + else: + message = {"detail": "Feedback with id {} doesn't exist".format(pk)} + print(message) + return Response(message, status=status.HTTP_400_BAD_REQUEST) -- GitLab From 5623c8dd934f98103bcd229e0445791003b82979 Mon Sep 17 00:00:00 2001 From: Adib Yusril Wafi <adib.yusril@ui.ac.id> Date: Tue, 8 Oct 2019 22:05:14 +0700 Subject: [PATCH 4/4] merge migrations --- core/migrations/0035_merge_20191008_2145.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 core/migrations/0035_merge_20191008_2145.py diff --git a/core/migrations/0035_merge_20191008_2145.py b/core/migrations/0035_merge_20191008_2145.py new file mode 100644 index 00000000..1cfde9be --- /dev/null +++ b/core/migrations/0035_merge_20191008_2145.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.5 on 2019-10-08 14:45 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('core', '0020_merge_20191006_1855'), + ('core', '0034_merge_20191008_1907'), + ] + + operations = [ + ] -- GitLab