def service_image_delete(request, service_id): token_payload = request.META.get('TOKEN_PAYLOAD') if not token_payload.get('admin'): return JsonResponse({'message': 'Permission Denied'}, status=status.HTTP_403_FORBIDDEN) image_url = request.POST.get('image_url', None) if image_url is None: msg = {'message': 'body parameter "image_url" should be given'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) try: service = Service.objects.get(id=service_id) result = Service.objects(id=service_id).update_one( pull__image_url=image_url, full_result=True) if (result.modified_count == 1): Image.increaseUsage(image_url, -1) else: msg = {'message': 'The image does not exist in this service'} return JsonResponse(msg, status=status.HTTP_404_NOT_FOUND) except Service.DoesNotExist: msg = {'message': 'The service does not exist'} return JsonResponse(msg, status=status.HTTP_404_NOT_FOUND) except Image.DoesNotExist: pass return JsonResponse(ServiceSerializer( Service.objects.get(id=service_id)).data, status=status.HTTP_202_ACCEPTED)
def event_update(request, event_id): token_payload = request.META.get('TOKEN_PAYLOAD') if not token_payload.get('admin'): return JsonResponse({'message': 'Permission Denied'}, status=status.HTTP_403_FORBIDDEN) title = request.POST.get('title', None) image_url = request.POST.get('image_url', None) content = request.POST.get('content', None) begin_date = request.POST.get('begin_date', None) end_date = request.POST.get('end_date', None) if not begin_date is None and not str(begin_date).isnumeric(): msg = {'message': 'body parameter "begin_date" should be a number'}, return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) elif not end_date is None and not str(begin_date).isnumeric(): msg = {'message': 'body parameter "end_date" should be a number'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) elif int(end_date) <= datetime.datetime.now().timestamp(): msg = {'message': 'The end date is not qulified.'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) try: event = Event.objects.get(id=event_id) except Event.DoesNotExist: msg = {'message': 'The event does not exist'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) except ValidationError: msg = {'message': 'The event id is invalid'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) if not title is None: event.title = title if not content is None: event.content = content if not begin_date is None: begin_date = datetime.datetime.fromtimestamp(int(begin_date)) event.begin_date = begin_date if not end_date is None: end_date = datetime.datetime.fromtimestamp(int(end_date)) event.end_date = end_date if not image_url is None: try: Image.increaseUsage(image_url, 1) Image.increaseUsage(event['image_url'], -1, ignore_check_exist=True) event.image_url = image_url except Image.DoesNotExist: msg = {'message': 'The image does not exist'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) event.save() return JsonResponse(EventSerializer(event).data, status=status.HTTP_201_CREATED)
def therapist_update(request, therapist_id): token_payload = request.META.get('TOKEN_PAYLOAD') if not token_payload.get('admin'): return JsonResponse({'message': 'Permission Denied'}, status=status.HTTP_403_FORBIDDEN) image_url = request.POST.get('image_url', None) name = request.POST.get('name', None) gender = request.POST.get('gender', None) description = request.POST.get('description', None) if image_url is None and name is None and gender is None and description is None: msg = { 'message': 'body parameter "image_url" or "name" or "content" or "description" should be given' } return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) try: therapist = Therapist.objects.get(id=therapist_id) except Therapist.DoesNotExist: msg = {'message': 'The therapist does not exist'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) except ValidationError: msg = {'message': 'The therapist id is invalid'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) if not name is None: therapist.name = name if not gender is None: therapist.gender = gender if not description is None: therapist.description = description if not image_url is None: try: old_image_url = therapist['image_url'] Image.increaseUsage(image_url, 1) therapist.image_url = image_url except Image.DoesNotExist: msg = {'message': 'The image does not exist'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) try: Image.increaseUsage(old_image_url, -1) except Image.DoesNotExist: pass therapist.save() return JsonResponse(TherapistSerializer(therapist).data, status=status.HTTP_201_CREATED)
def service_delete(request, service_id): token_payload = request.META.get('TOKEN_PAYLOAD') if not token_payload.get('admin'): return JsonResponse({'message': 'Permission Denied'}, status=status.HTTP_403_FORBIDDEN) try: service = Service.objects.get(id=service_id) for url in service.image_url: Image.increaseUsage(url, -1, ignore_check_exist=True) except Service.DoesNotExist: msg = {'message': 'The service does not exist'} return JsonResponse(msg, status=status.HTTP_404_NOT_FOUND) service.delete() msg = {'message': 'The service was deleted successfully!'} return JsonResponse(msg, status=status.HTTP_202_ACCEPTED)
def therapist_create(request): token_payload = request.META.get('TOKEN_PAYLOAD') if not token_payload.get('admin'): return JsonResponse({'message': 'Permission Denied'}, status=status.HTTP_403_FORBIDDEN) image_url = request.POST.get('image_url', None) name = request.POST.get('name', None) gender = request.POST.get('gender', None) description = request.POST.get('description', None) if image_url is None: msg = {'message': 'body parameter "image_url" should be given'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) if name is None: msg = {'message': 'body parameter "name" should be given'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) if gender is None: msg = {'message': 'body parameter "gender" should be given'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) if description is None: msg = {'message': 'body parameter "description" should be given'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) try: Image.increaseUsage(image_url, 1) except Image.DoesNotExist: msg = {'message': 'The image does not exist'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) serializer = TherapistSerializer( data={ 'image_url': image_url, 'name': name, 'gender': gender, 'description': description }) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data) return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def event_delete(request, event_id): token_payload = request.META.get('TOKEN_PAYLOAD') if not token_payload.get('admin'): return JsonResponse({'message': 'Permission Denied'}, status=status.HTTP_403_FORBIDDEN) try: event = Event.objects.get(id=event_id) except Event.DoesNotExist: msg = {'message': 'The event does not exist'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) except ValidationError: msg = {'message': 'The event id is invalid'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) event.delete() try: Image.increaseUsage(event['image_url'], -1) except Image.DoesNotExist: pass msg = {'message': 'The event was deleted successfully!'} return JsonResponse(msg, status=status.HTTP_202_ACCEPTED)
def therapist_delete(request, therapist_id): token_payload = request.META.get('TOKEN_PAYLOAD') if not token_payload.get('admin'): return JsonResponse({'message': 'Permission Denied'}, status=status.HTTP_403_FORBIDDEN) try: therapist = Therapist.objects.get(id=therapist_id) except Therapist.DoesNotExist: msg = {'message': 'The therapist already deleted or never created'} return JsonResponse(msg, status=status.HTTP_404_NOT_FOUND) except ValidationError: msg = {'message': 'The therapist id is invalid'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) therapist.delete() try: Image.increaseUsage(therapist['image_url'], -1) except Image.DoesNotExist: pass msg = {'message': 'The therapist was deleted successfully!'} return JsonResponse(msg, status=status.HTTP_202_ACCEPTED)
def service_create(request): image_url = request.POST.getlist('image_url') if len(image_url) == 0: image_url = request.POST.getlist('image_url[]') title = request.POST.get('title', None) short_description = request.POST.get('short_description', None) long_description = request.POST.get('long_description', None) duration = request.POST.get('duration', None) price = request.POST.get('price', None) vip_per = request.POST.get('vip_per', '1') nor_per = request.POST.get('nor_per', '1') minus = request.POST.get('minus', '0') if title is None: msg = {'message': 'body parameter "title" should be given'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) elif short_description is None: msg = {'message': 'body parameter "short_description" should be given'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) elif long_description is None: msg = {'message': 'body parameter "long_description" should be given'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) elif duration is None: msg = {'message': 'body parameter "duration" should be given'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) elif price is None: msg = {'message': 'body parameter "price" should be given'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) elif not str(minus).isnumeric(): msg = {'message': 'body parameter "minus" should be an integer'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) try: vip_per = float(vip_per) nor_per = float(nor_per) except ValueError: msg = { 'message': 'body parameter "vip_per" or "nor_per" should be a float number' } return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) try: for url in image_url: Image.objects.get(url=url) for url in image_url: Image.increaseUsage(url, 1) except Image.DoesNotExist: msg = {'message': 'The image_url "' + url + '" is not exist'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) service = ServiceSerializer( data={ 'title': title, 'image_url': image_url, 'short_description': short_description, 'long_description': long_description, 'duration': duration, 'price': price, 'vip_per': vip_per, 'nor_per': nor_per, 'minus': minus }) if service.is_valid(): service.save() return JsonResponse(service.data) return JsonResponse(service.errors, status=status.HTTP_400_BAD_REQUEST)
def service_update(request, service_id): token_payload = request.META.get('TOKEN_PAYLOAD') if not token_payload.get('admin'): return JsonResponse({"message": "Permission Denied"}, status=status.HTTP_403_FORBIDDEN) image_url = request.POST.getlist('image_url') if len(image_url) == 0: image_url = request.POST.getlist('image_url[]') title = request.POST.get('title', None) short_description = request.POST.get('short_description', None) long_description = request.POST.get('long_description', None) duration = request.POST.get('duration', None) price = request.POST.get('price', None) vip_per = request.POST.get('vip_per', None) nor_per = request.POST.get('nor_per', None) minus = request.POST.get('minus', None) if not minus is None and not str(minus).isdigit(): msg = {'message': 'body parameter "minus" should be an integer'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) try: if not vip_per is None: vip_per = float(vip_per) if not nor_per is None: nor_per = float(nor_per) except ValidationError: msg = { 'message': 'body parameter "vip_per" or "nor_per" should be a float number' } return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) try: service = Service.objects.get(id=service_id) except Service.DoesNotExist: msg = {'message': 'The service does not exist'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) except ValidationError: msg = {'message': 'The service id is invalid'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) try: for url in image_url: Image.objects.get(url=url) except Image.DoesNotExist: msg = {'message': 'The image_url "' + url + '" is not exist'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) if not title is None: service.title = title if not short_description is None: service.short_description = short_description if not long_description is None: service.long_description = long_description if not duration is None: service.duration = duration if not price is None: service.price = price if not vip_per is None: service.vip_per = vip_per if not nor_per is None: service.nor_per = nor_per if not minus is None: service.minus = minus for url in image_url: Image.increaseUsage(url, 1, ignore_check_exist=True) for url in service.image_url: Image.increaseUsage(url, -1, ignore_check_exist=True) service.image_url = image_url service.save() return JsonResponse(ServiceSerializer(service).data, status=status.HTTP_201_CREATED)
def event_new(request): token_payload = request.META.get('TOKEN_PAYLOAD') if not token_payload.get('admin'): return JsonResponse({'message': 'Permission Denied'}, status=status.HTTP_403_FORBIDDEN) image_url = request.POST.get('image_url', None) title = request.POST.get('title', None) content = request.POST.get('content', None) begin_date = request.POST.get('begin_date', None) end_date = request.POST.get('end_date', None) if image_url is None: return JsonResponse( {'message': 'body parameter "image_url" should be given'}, status=status.HTTP_400_BAD_REQUEST) if title is None: return JsonResponse( {'message': 'body parameter "title" should be given'}, status=status.HTTP_400_BAD_REQUEST) elif content is None: return JsonResponse( {'message': 'body parameter "content" should be given'}, status=status.HTTP_400_BAD_REQUEST) elif begin_date is None or not str(begin_date).isnumeric(): return JsonResponse( {'message': 'body parameter "begin_date" should be a number'}, status=status.HTTP_400_BAD_REQUEST) elif end_date is None or not str(end_date).isnumeric(): return JsonResponse( {'message': 'body parameter "end_date" should be a number'}, status=status.HTTP_400_BAD_REQUEST) if int(end_date) <= datetime.datetime.now().timestamp(): msg = {'message': 'The end date is not qulified.'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) begin_date_f = datetime.datetime.fromtimestamp(int(begin_date)) end_date_f = datetime.datetime.fromtimestamp(int(end_date)) begin_date = datetime.datetime.fromtimestamp(int(begin_date)+8*3600) end_date = datetime.datetime.fromtimestamp(int(end_date)+8*3600) try: Image.increaseUsage(image_url, 1) except Image.DoesNotExist: msg = {'message': 'The image does not exist'} return JsonResponse(msg, status=status.HTTP_400_BAD_REQUEST) serializer = EventSerializer(data={ 'title': title, 'content': content, 'begin_date': begin_date, 'end_date': end_date, 'image_url': image_url, }) serializer_2 = EventSerializer(data={ 'title': title, 'content': content, 'begin_date': begin_date_f, 'end_date': end_date_f, 'image_url': image_url, }) if serializer.is_valid(): serializer.save() if serializer_2.is_valid(): return JsonResponse(serializer_2.data) return JsonResponse(serializer.errors, status=status.HTTP_400_BAD_REQUEST)