Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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)