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 as rst_status
|
|
from .models import Status
|
|
from .serializers import StatusSerializer
|
|
|
|
|
|
#@api_view(['GET', 'DELETE', 'PUT'])
|
|
@api_view (['GET', 'PUT'])
|
|
def get_delete_update_status (request, key):
|
|
try:
|
|
status = Status.objects.get (key = key)
|
|
except Status.DoesNotExist:
|
|
return Response (status = rst_status.HTTP_404_NOT_FOUND)
|
|
|
|
# get value of a single Status
|
|
if request.method == 'GET':
|
|
serializer = StatusSerializer (status)
|
|
return Response (serializer.data)
|
|
# delete a single Status
|
|
elif request.method == 'DELETE':
|
|
return Response ({})
|
|
# update details of a single Status
|
|
elif request.method == 'PUT':
|
|
serializer = StatusSerializer (status, data = request.data)
|
|
if serializer.is_valid ():
|
|
serializer.save ()
|
|
return Response (serializer.data, status = rst_status.HTTP_204_NO_CONTENT)
|
|
return Response (serializer.errors, status = rst_status.HTTP_400_BAD_REQUEST)
|
|
|
|
|
|
@api_view (['GET', 'POST'])
|
|
def get_post_status (request):
|
|
# get all States
|
|
if request.method == 'GET':
|
|
states = Status.objects.all ()
|
|
serializer = StatusSerializer (states, many = True)
|
|
return Response (serializer.data)
|
|
# insert a new record for a State
|
|
elif request.method == 'POST':
|
|
try:
|
|
data = { 'key': request.data.get ('key'),
|
|
'value': int (request.data.get ('value'))
|
|
}
|
|
except:
|
|
return Response ('Value Bad', status = rst_status.HTTP_400_BAD_REQUEST)
|
|
serializer = StatusSerializer (data = data)
|
|
if serializer.is_valid () and data ['key'] > '':
|
|
serializer.save ()
|
|
return Response (serializer.data, status = rst_status.HTTP_201_CREATED)
|
|
return Response (serializer.errors, status = rst_status.HTTP_400_BAD_REQUEST)
|