from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.renderers import JSONRenderer
from dietmenu.models import FlowerDiet01
from dietmenu.serializers import FlowerDietSerializer
# Create your views here.
@api_view(['GET','POST'])
def flowerdiet_list(request):
if request.method == 'GET':
return __get_flower_diet_list01(request)
elif request.method == 'POST':
return __post_flower_diet_list01(request)
else:
pass
@api_view(['GET','PUT','DELETE'])
def flowerdiet_detail(request, pk):
if request.method == 'GET':
return __get_flower_diet_detail01(request, pk)
elif request.method == 'PUT':
return __put_flower_diet_detail01(request, pk)
elif request.method == 'DELETE':
return __del_flower_diet_detail01(request, pk)
else:
pass
def __get_flower_diet_list01(request):
params = list_to_string(request.query_params)
print(params)
try:
fdl = FlowerDiet01.objects.filter(year=int(params['year']), month=int(params['month']))
except FlowerDiet01.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
serializer = FlowerDietSerializer(fdl, many=True)
rs = JSONRenderer().render(serializer.data)
print(rs)
return Response(data=rs)
def __post_flower_diet_list01(request):
serializer = FlowerDietSerializer(data=request.data)
if serializer.is_valid():
vd = serializer.validated_data
serializer.create(vd)
serializer.save()
return Response(data='got it', status=status.HTTP_201_CREATED)
return Response(data='failed', status=status.HTTP_400_BAD_REQUEST)
def __get_flower_diet_detail01(request, pk):
try:
fdl_detail = FlowerDiet01.objects.get(id=pk)
except FlowerDiet01.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
serializer = FlowerDietSerializer(fdl_detail)
return Response(JSONRenderer().render(serializer.data))
def __put_flower_diet_detail01(request, pk):
fdl = FlowerDiet01.objects.get(id=int(pk))
serializer = FlowerDietSerializer(fdl, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(JSONRenderer().render(serializer.data), status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def __del_flower_diet_detail01(request, pk):
fdl = FlowerDiet01.objects.get(id=int(pk))
fdl.delete()
return Response(status=status.HTTP_204_NO_CONTENT)
def list_to_string(rs):
temp_list = []
temp_dic = {}
if isinstance(rs, list):
for r in rs:
for k, v in r.items():
if len(v[0]) == 0:
temp_dic[k] = ''
else:
temp_dic[k] = ','.join(list(map(lambda x : str(x), v)))
temp_list.append(temp_dic.copy())
return temp_list
elif isinstance(rs, dict):
rs = dict(rs)
for k, v in rs.items():
if len(v[0]) == 0:
temp_dic[k] = ''
else:
temp_dic[k] = ','.join(list(map(lambda x : str(x), v)))
return temp_dic