Skip to content

jbauza/todolist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Todolist

Una API para manejar una simple “TODO List”, es solo una lista de tareas compartida para todos los usuarios que se registren, en paticular aca solo se necesita 1 usuario.

Requerimientos

Objetivos

Se implementaron los siguientes endpoints:

  • Registrar un usuario.
  • Agregar tareas al TODO list.
  • Marcar una tarea como resuelta.
  • Obtener lista de tareas con su estado actual.
  • Autenticacion manejada con TokenAuthentication

Instrucciones

Para el correcto funcionamiento se deben instalar los requerimientos anteriores. Se utiliza una base de datos sqlite por defecto.

Ejecutar el servidor de la siguiente forma:

python manage.py runserver 0.0.0.0:8000

Esto ejecuta el servidor que escucha las peticiones desde cualquier IP, a la IP del servidor ( no sólo localhost ) desde el puerto 8000 por defecto.

Funciones disponibles

Para realizar las llamadas al servidor se recomienda hacerlas con Curl o Httpie.

Registrar usuario

Registra un nuevo usuario y retorna el token generado, que servira para realizar todas las transacciones posteriores. No necesita autorizacion y se debe enviar username y password via POST.

Input

curl -H "Content-Type: application/json" -X POST -d '{"username":"<username>", "password":"<password>"}' http://localhost:8000/todo/register_user/

Output

{"<token>"}

Pedir token de usuario

Pide un token de un usuario ya registrado. No necesita autorización y se debe enviar username y password via POST.

Input

curl -H "Content-Type: application/json" -X POST -d '{"username":"<username>", "password":"<password>"}' http://localhost:8000/todo/get_token/

Output

{"token":"<token>"}

Pedir lista de tareas

Pide todas las tareas disponibles con sus estados correspondientes se debe enviar el token en el header, para pasar la autorizacion via GET.

Input

curl -H 'Authorization: Token <token>' -X GET http://localhost:8000/todo/todolist/

Output

 [
 {"name":"tareita","status":false},
 {"name":"tarea2","status":true"},
 {"name":"nueva_tarea","status":true}
 ]

Agregar tarea

Agrega una nueva tarea a la todolist. Se debe enviar token en header y el name de la nueva tarea via POST.

Input

curl -H "Content-Type: application/json" -H 'Authorization: Token <token>' -X POST -d '{"name":"<task_name>"}' http://localhost:8000/todo/add_task/

Output

{"name":"tareita","status":false}

Resolver Tarea

Resuelve una tarea y le cambia el status de false a true. Se debe enviar el task_name al final de la url via POST.

Input

curl -H "Content-Type: application/json" -H 'Authorization: Token <token>' -X POST http://localhost:8000/todo/resolve_task/<task_name>

Output

{"name":"tareita","status":true}

About

list of tasks

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages