コード例 #1
0
ファイル: views.py プロジェクト: MrIceman/joberia
    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)))
コード例 #2
0
ファイル: views.py プロジェクト: MrIceman/joberia
 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)
コード例 #3
0
ファイル: views.py プロジェクト: MrIceman/joberia
    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)
コード例 #4
0
ファイル: views.py プロジェクト: MrIceman/joberia
 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)))
コード例 #5
0
ファイル: views.py プロジェクト: MrIceman/joberia
 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))
コード例 #6
0
ファイル: views.py プロジェクト: MrIceman/joberia
    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)))
コード例 #7
0
ファイル: tests.py プロジェクト: MrIceman/joberia
    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())