Files
sf_lactorapi/status/views.py
2019-07-16 11:09:20 +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 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)