Files
sf_lactorapi/parameter/views.py
2020-05-24 18:21:14 +02:00

53 lines
1.9 KiB
Python

from django.shortcuts import render
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status
from .models import Parameter
from .serializers import ParameterSerializer
#@api_view (['GET', 'DELETE', 'PUT'])
@api_view (['GET', 'PUT'])
def get_delete_update_parameter (request, key):
try:
parameter = Parameter.objects.get (key = key)
except Parameter.DoesNotExist:
return Response (status = status.HTTP_404_NOT_FOUND)
# get value of a single Parameter
if request.method == 'GET':
serializer = ParameterSerializer (parameter)
return Response (serializer.data)
# delete a single Parameter
elif request.method == 'DELETE':
return Response ({})
# update details of a single Parameter
elif request.method == 'PUT':
serializer = ParameterSerializer (parameter, data = request.data)
if serializer.is_valid ():
serializer.save ()
return Response(serializer.data, status = status.HTTP_204_NO_CONTENT)
return Response(serializer.errors, status = status.HTTP_400_BAD_REQUEST)
@api_view (['GET', 'POST'])
def get_post_parameter (request):
# get all Parameter
if request.method == 'GET':
parameter = Parameter.objects.all ()
serializer = ParameterSerializer (parameter, many = True)
return Response (serializer.data)
# insert a new record for a Parameter
elif request.method == 'POST':
try:
data = { 'key': request.data.get ('key'),
'value': int (request.data.get ('value'))
}
except:
return Response ('Invalid Value', status = status.HTTP_400_BAD_REQUEST)
serializer = ParameterSerializer (data = data)
if serializer.is_valid () and data ['key'] > '' :
serializer.save ()
return Response (serializer.data, status = status.HTTP_201_CREATED)
return Response( serializer.errors, status = status.HTTP_400_BAD_REQUEST)