53 lines
1.9 KiB
Python
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)
|