Reordenadas las funciones de vistas de lista

This commit is contained in:
Daniel Cortes
2020-07-14 08:16:45 -04:00
parent 3df7d89aef
commit 1a36bec50a

View File

@@ -28,64 +28,6 @@ def list_view(request, user_id):
return JsonResponse({'status': 404, 'error': 'La ruta no existe'}, status=404) return JsonResponse({'status': 404, 'error': 'La ruta no existe'}, status=404)
def list_item_view(request, user_id, list_item_id):
"""
Punto de entrada a las vistas de item de lista de un usuario
"""
# Tiene que existir un usuario con el id entregado.
user = User.objects.filter(pk=user_id)
if user.count() != 1:
return JsonResponse({'status': 404, 'error': f'No existe un usuario con id {user_id}'}, status=404)
user = user[0]
# Tiene que existir un item de lista de usuario con el id entregado
list_item = ListItem.objects.filter(id=list_item_id, user_id=user_id)
if list_item.count() == 0:
return JsonResponse({'status': 404, 'error': 'No existe el list_item'}, status=404)
list_item = list_item[0]
if request.method == 'GET':
return _get_list_item(request, user, list_item)
if request.method == 'PUT':
return _update_list_item(request, user, list_item)
elif request.method == 'DELETE':
return _remove_list_item(request, user, list_item)
else:
return JsonResponse({'status': 404, 'error': 'La ruta no existe'}, status=404)
def tag_view(request, user_id, tag_id=None):
"""
Punto de entrada para las vistas de tags
"""
# Tiene que existir un usuario con el id entregado.
user = User.objects.filter(pk=user_id)
if user.count() != 1:
return JsonResponse({'status': 404, 'error': f'No existe un usuario con id {user_id}'}, status=404)
user = user[0]
# Tag id puede ser none, pero si no lo es, tiene que existir
tag = None
if tag_id:
tag = Tag.objects.filter(pk=tag_id)
if tag.count() != 1:
return JsonResponse({'status': 404, 'error': f'No existe una tag con id {tag}'}, status=404)
tag = tag[0]
if request.method == 'GET':
return _get_tags(request, user)
elif request.method == 'POST':
return _post_tag(request, user)
elif request.method == 'PUT' and tag:
return _put_tag(request, user, tag)
elif request.method == 'DELETE' and tag:
return _delete_tag(request, user, tag)
else:
return JsonResponse({'status': 404, 'error': 'La ruta no existe'}, status=404)
def _get_list(request, user): def _get_list(request, user):
"""Retorna la lista de un usuario""" """Retorna la lista de un usuario"""
@@ -153,6 +95,33 @@ def _add_to_list(request, user):
return JsonResponse({'status': 200}) return JsonResponse({'status': 200})
def list_item_view(request, user_id, list_item_id):
"""
Punto de entrada a las vistas de item de lista de un usuario
"""
# Tiene que existir un usuario con el id entregado.
user = User.objects.filter(pk=user_id)
if user.count() != 1:
return JsonResponse({'status': 404, 'error': f'No existe un usuario con id {user_id}'}, status=404)
user = user[0]
# Tiene que existir un item de lista de usuario con el id entregado
list_item = ListItem.objects.filter(id=list_item_id, user_id=user_id)
if list_item.count() == 0:
return JsonResponse({'status': 404, 'error': 'No existe el list_item'}, status=404)
list_item = list_item[0]
if request.method == 'GET':
return _get_list_item(request, user, list_item)
if request.method == 'PUT':
return _update_list_item(request, user, list_item)
elif request.method == 'DELETE':
return _remove_list_item(request, user, list_item)
else:
return JsonResponse({'status': 404, 'error': 'La ruta no existe'}, status=404)
def _get_list_item(request, user, list_item): def _get_list_item(request, user, list_item):
"""Obtiene un item de la lista del usuario""" """Obtiene un item de la lista del usuario"""
@@ -210,6 +179,37 @@ def _remove_list_item(request, user, list_item):
return JsonResponse({'status': 200}) return JsonResponse({'status': 200})
def tag_view(request, user_id, tag_id=None):
"""
Punto de entrada para las vistas de tags
"""
# Tiene que existir un usuario con el id entregado.
user = User.objects.filter(pk=user_id)
if user.count() != 1:
return JsonResponse({'status': 404, 'error': f'No existe un usuario con id {user_id}'}, status=404)
user = user[0]
# Tag id puede ser none, pero si no lo es, tiene que existir
tag = None
if tag_id:
tag = Tag.objects.filter(pk=tag_id)
if tag.count() != 1:
return JsonResponse({'status': 404, 'error': f'No existe una tag con id {tag}'}, status=404)
tag = tag[0]
if request.method == 'GET':
return _get_tags(request, user)
elif request.method == 'POST':
return _post_tag(request, user)
elif request.method == 'PUT' and tag:
return _put_tag(request, user, tag)
elif request.method == 'DELETE' and tag:
return _delete_tag(request, user, tag)
else:
return JsonResponse({'status': 404, 'error': 'La ruta no existe'}, status=404)
def _get_tags(request, user): def _get_tags(request, user):
"""Obtiene todas las tags de un usuario""" """Obtiene todas las tags de un usuario"""