def put(self, request, *args, **kwargs): try: user = kwargs[REQUEST_KEY_USER] platform = kwargs[REQUEST_KEY_PLATFORM] data = JSONParser().parse(request) job_id = data['id'] del data['id'] if user and job_id is not None: job = Job.objects.filter(pk=job_id, platform=platform.pk).first() if job is None: return JsonResponse(create_data_does_not_exist_response()) if job.created_by.pk != user.pk: return JsonResponse(create_not_authorized_response()) else: serializer = JobSerializer(job, data=data, partial=True) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data) else: return JsonResponse( create_failed_message(serializer.errors)) except Exception as e: return JsonResponse(create_failed_message(str(e)))
def get(self, request): job_id = request.GET.get('id') platform_id = request.GET.get('platform') if job_id is None: if platform_id is not None: platform = Platform.objects.filter(pk=platform_id).first() if platform is None: return JsonResponse( create_data_does_not_exist_response( 'Platform does not exist.')) jobs = Job.objects.filter(platform_id=platform_id).all() serializer = JobSerializer(instance=jobs, many=True) return JsonResponse(serializer.data, safe=False) else: return JsonResponse( create_data_does_not_exist_response( 'Platform ID required')) job = Job.objects.filter(pk=job_id, platform_id=platform_id).first() serializer = JobSerializer(instance=job) return JsonResponse(serializer.data)
def get(self, request): platform_id = request.GET.get('platform_id') if platform_id: platform = Platform.objects.filter(pk=platform_id).first() if platform is None: return JsonResponse(create_data_does_not_exist_response()) serializer = PlatformSerializer(platform) return JsonResponse(serializer.data) else: all_platforms = Platform.objects.all() serializer = PlatformSerializer(all_platforms, many=True) return JsonResponse(serializer.data, safe=False)
def delete(self, request, *args, **kwargs): job_id = request.GET.get('job_id') comment_id = request.GET.get('id') user = kwargs.get(REQUEST_KEY_USER) platform = kwargs.get(REQUEST_KEY_PLATFORM) job = Job.objects.filter(pk=job_id, created_by=user.pk, platform=platform.pk).first() if job is None: return JsonResponse( create_data_does_not_exist_response('Job does not exist.')) else: comment = job.comments.filter(pk=comment_id).first() if comment is None: return JsonResponse( create_data_does_not_exist_response( 'Comment {} does not exist.'.format(comment_id))) comment.delete() return JsonResponse( create_action_successful_response( 'Comment {id} was deleted successfully.'.format( id=comment_id)))
def post(self, request, *args, **kwargs): comment_data = JSONParser().parse(request) user = kwargs.get(REQUEST_KEY_USER) platform = kwargs.get(REQUEST_KEY_PLATFORM) job = Job.objects.filter(pk=comment_data['job_id'], created_by=user.pk, platform=platform.pk).first() if job is None: return JsonResponse(create_data_does_not_exist_response()) comment_data.update({'job': comment_data['job_id']}) comment_data.update({'platform': platform.pk}) comment_data.update({'author': user.pk}) serializer = CommentSerializer(data=comment_data) if serializer.is_valid(): instance = serializer.save() return JsonResponse(serializer.data) else: return JsonResponse(create_failed_message(serializer.errors))
def delete(self, request, *args, **kwargs): try: user = kwargs[REQUEST_KEY_USER] platform = kwargs[REQUEST_KEY_PLATFORM] job_id = request.GET.get('id') if user and job_id is not None: job = Job.objects.filter(pk=job_id, platform=platform.pk).first() if job is None: return JsonResponse(create_data_does_not_exist_response()) if job.created_by.pk != user.pk: return JsonResponse(create_not_authorized_response()) else: job.delete() return JsonResponse( create_action_successful_response( '{id} was deleted successfully.'.format( id=job_id))) except Exception as e: return JsonResponse(create_failed_message(str(e)))
def test_gets_error_message_because_item_does_not_exist(self): response = self.client.get('/spawner/platform/?platform_id=14') obj = json.loads(str(response.content, encoding='utf-8')) self.assertEqual(obj, create_data_does_not_exist_response())