def retreived_data_detail(request, pk): # find data by pk (id) try: retreived_data = RetreivedData.objects.get(pk=pk) except RetreivedData.DoesNotExist: return JsonResponse({'message': 'The data does not exist'}, status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': retrieved_data_serializer = RetreivedDataSerializer(retreived_data) return JsonResponse(retrieved_data_serializer.data) elif request.method == 'PUT': retreived_data = JSONParser().parse(request) retrieved_data_serializer = RetreivedDataSerializer( retreived_data, data=retreived_data) if retrieved_data_serializer.is_valid(): retrieved_data_serializer.save() return JsonResponse(retrieved_data_serializer.data) return JsonResponse(retrieved_data_serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': retreived_data.delete() return JsonResponse({'message': 'Data was deleted successfully!'}, status=status.HTTP_204_NO_CONTENT)
def view_one(request, pk): try: data = Users.objects.get(pk=pk) except Users.DoesNotExist: return JsonResponse( {'message': 'The %s does not exist'.format(APP_NAME)}, status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = UsersSerializer(data) return JsonResponse(serializer.data) elif request.method == 'PUT': data = JSONParser().parse(request) obj = Users(pk=data["pk"]) # serializer = UsersSerializer(data, data=data) serializer = UsersSerializer(obj, data=data) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data) return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': data.delete() return JsonResponse( {'message': '%s was deleted successfully'.format(APP_NAME)}, status=status.HTTP_204_NO_CONTENT)
def UserApi(request, username=''): if request.method == "GET": user = User.objects.all() user_serializer = UserSerializer(user, many=True) return JsonResponse(user_serializer.data, safe=False) elif request.method == "POST": user = JSONParser().parse(request) user_serializer = UserSerializer(data=user) if user_serializer.is_valid(): user_serializer.save() return JsonResponse(True, safe=False) return JsonResponse(False, safe=False) elif request.method == "PUT": user_data = JSONParser().parse(request) user = User.objects.get(username=user_data['username']) user_serializer = UserSerializer(user, data=user_data) if user_serializer.is_valid(): user_serializer.save() return JsonResponse(True, safe=False) return JsonResponse(False, safe=False) elif request.method == "DELETE": user = User.objects.get(username=user_data['username']) user.delete() return JsonResponse("Record deleted successfully!", safe=False)
def review(request) -> JsonResponse: if request.method == 'GET': review_id = request.query_params.get('id') try: review = NgoReview.objects.get(pk=review_id) return JsonResponse(convert_reviews([review])[0], safe=False) except BaseException: return JsonResponse( {'error': f'No review found for ID {review_id}'}, status=status.HTTP_400_BAD_REQUEST, safe=False) if request.method == 'PUT': review = JSONParser().parse(request) try: user_id = review['userId'] if request.user.id != user_id: return JsonResponse({ 'error': 'Comments can only be stored / edited for the current user.' }) user = User.objects.get(pk=user_id) except BaseException: return JsonResponse({'error': f'No user found for ID {user_id}'}, status=status.HTTP_400_BAD_REQUEST, safe=False) review_id = review['reviewId'] if review_id is not None: return update_review(review_id, review) else: return save_new_review(review, user) if request.method == 'DELETE': review_id = request.query_params.get('id') review = NgoReview.objects.get(pk=review_id) user_id = review.reviewer.id if request.user.id != user_id: return JsonResponse({'error': 'Only own comments can be deleted.'}) review.delete() ngo = Ngo.objects.get(pk=review.ngo.id) ngo.number_of_reviews -= 1 TWUpdater()._calculate_tw_without_pagerank_for_ngo(ngo) ngo.save() return JsonResponse({'message': 'Review was deleted successfully!'}, status=status.HTTP_204_NO_CONTENT)