Categorygithub.com/RodrigoGonzalez78/tasks_management_backend
modulepackage
0.0.0-20241220194340-87daafc401d7
Repository: https://github.com/rodrigogonzalez78/tasks_management_backend.git
Documentation: pkg.go.dev

# README

API REST para Gestión de Tareas

Esta API permite a los usuarios registrarse, iniciar sesión y gestionar sus tareas y notas. A continuación, se describen los endpoints disponibles y los formatos de solicitud y respuesta.

Endpoints

1. Registro de Usuario

Endpoint: /signup
Método: POST
Descripción: Crea una nueva cuenta de usuario.

Formato de solicitud:

{
  "email": "[email protected]",
  "password": "123456789"
}

Requisitos:

  • El campo email debe ser un correo electrónico válido.
  • La password debe tener al menos 8 caracteres.

Respuestas:

CódigoDescripción
201Usuario creado exitosamente.
400Error en el formato del correo, la contraseña no cumple los criterios, o el correo ya está en uso.
500Error interno al crear el usuario.

2. Inicio de Sesión

Endpoint: /login
Método: POST
Descripción: Inicia sesión en la aplicación con un correo electrónico y contraseña válidos.

Formato de solicitud:

{
  "email": "[email protected]",
  "password": "123456789"
}

Respuestas:

  • 200 OK: Inicio de sesión exitoso.

    Formato de respuesta:

    {
      "token": "djskdjskdjskjdksjjdksdksj..."
    }
    
CódigoDescripción
400Error en el formato de la solicitud o usuario/contraseña incorrectos.
500Error interno al generar el token de autenticación.

1. Eliminar cuenta de usuario

  • Endpoint: /delete-account
  • Método: DELETE
  • Middleware: CheckJwt (Requiere autenticación JWT)

Descripción:

Este endpoint elimina la cuenta de un usuario autenticado, incluyendo todas las tareas asociadas al usuario.

Cuerpo de la solicitud:

No se requiere un cuerpo para esta solicitud.

Respuestas:

CódigoDescripción
200La cuenta del usuario y todas sus tareas fueron eliminadas exitosamente.
404El usuario no fue encontrado en la base de datos.

Ejemplo de Respuesta:

{
  "message": "Cuenta eliminada exitosamente."
}

Actualizar datos del usuario

  • Endpoint: /update-user
  • Método: PUT
  • Middleware: CheckJwt (Requiere autenticación JWT)

Descripción:

Permite a un usuario autenticado actualizar sus datos personales, como su nombre y apellido.

Cuerpo de la solicitud:

{
  "first_name": "string",
  "last_name": "string"
}
  • first_name: Nombre del usuario (obligatorio).
  • last_name: Apellido del usuario (obligatorio).

Respuestas:

CódigoDescripción
200Los datos del usuario fueron actualizados exitosamente.
400Faltan campos obligatorios o hay un error en la solicitud.
404El usuario no fue encontrado en la base de datos.
500Error interno al actualizar los datos en la base de datos.

Ejemplo de Cuerpo de la Solicitud:

{
  "first_name": "Juan",
  "last_name": "Pérez"
}

Ejemplo de Respuesta:

{
  "id": 1,
  "first_name": "Juan",
  "last_name": "Pérez",
  "email": "[email protected]",
  "created_at": "2024-01-01T12:00:00Z",
  "updated_at": "2024-12-03T14:00:00Z"
}

Actualizar Contraseña del Usuario

  • Endpoint: /update-password
  • Método: PUT
  • Middleware: CheckJwt (Requiere autenticación JWT)

Descripción:

Este endpoint permite a un usuario autenticado actualizar su contraseña de forma segura.

Cuerpo de la solicitud:

{
  "password": "string"
}
  • password: Nueva contraseña del usuario (obligatoria).

Respuestas:

CódigoDescripción
200La contraseña fue actualizada exitosamente.
400Error en la solicitud (por ejemplo, el formato es inválido).
404El usuario no fue encontrado en la base de datos.
500Error interno al generar el hash o actualizar la base de datos.

Ejemplo de Cuerpo de la Solicitud:

{
  "password": "nuevaContraseñaSegura123"
}

Ejemplo de Respuesta:

{
  "message": "Contraseña actualizada correctamente"
}

Obtener Todas las Tareas del Usuario

  • Endpoint: /tasks
  • Método: GET
  • Middleware: CheckJwt (Requiere autenticación JWT)

Descripción:

Devuelve una lista de todas las tareas asociadas al usuario autenticado.

Cuerpo de la solicitud:

No se requiere un cuerpo para esta solicitud.

Respuestas:

CódigoDescripción
200Lista de tareas recuperada exitosamente.
404No se encontraron tareas para el usuario autenticado.

Ejemplo de Respuesta:

[
  {
    "id": 1,
    "title": "Tarea 1",
    "description": "Descripción de la tarea 1",
    "done": false,
    "user_id": 1,
    "created_at": "2024-01-01T12:00:00Z",
    "updated_at": "2024-01-01T12:00:00Z"
  }
]

Obtener una Tarea Específica

  • Endpoint: /tasks/{id}
  • Método: GET
  • Middleware: CheckJwt (Requiere autenticación JWT)

Descripción:

Devuelve los detalles de una tarea específica perteneciente al usuario autenticado.

Parámetros de la URL:

  • id: ID de la tarea a recuperar.

Cuerpo de la solicitud:

No se requiere un cuerpo para esta solicitud.

Respuestas:

CódigoDescripción
200Detalles de la tarea recuperados exitosamente.
404La tarea especificada no fue encontrada en la base de datos.

Ejemplo de Respuesta:

{
  "id": 1,
  "title": "Tarea 1",
  "description": "Descripción de la tarea 1",
  "done": false,
  "user_id": 1,
  "created_at": "2024-01-01T12:00:00Z",
  "updated_at": "2024-01-01T12:00:00Z"
}

Crear una Nueva Tarea

  • Endpoint: /tasks
  • Método: POST
  • Middleware: CheckJwt (Requiere autenticación JWT)

Descripción:

Este endpoint permite crear una nueva tarea asociada al usuario autenticado.

Cuerpo de la Solicitud:

{
  "title": "string",
  "description": "string"
}
  • title: Título de la tarea (obligatorio).
  • description: Descripción de la tarea (obligatorio).

Respuestas:

CódigoDescripción
200Tarea creada exitosamente.
400Error en la solicitud (formato inválido o campos vacíos).

Ejemplo de Cuerpo de la Solicitud:

{
  "title": "Comprar alimentos",
  "description": "Comprar frutas, verduras y leche"
}

Ejemplo de Respuesta:

{
  "id": 1,
  "title": "Comprar alimentos",
  "description": "Comprar frutas, verduras y leche",
  "done": false,
  "user_id": 1,
  "created_at": "2024-01-01T12:00:00Z",
  "updated_at": "2024-01-01T12:00:00Z"
}

Eliminar una Tarea

  • Endpoint: /tasks/{id}
  • Método: DELETE
  • Middleware: CheckJwt (Requiere autenticación JWT)

Descripción:

Elimina una tarea específica perteneciente al usuario autenticado.

Parámetros de la URL:

  • id: ID de la tarea a eliminar.

Respuestas:

CódigoDescripción
200Tarea eliminada exitosamente.
404La tarea especificada no fue encontrada.

Ejemplo de Respuesta:

{
  "message": "Tarea eliminada exitosamente"
}

Actualizar una Tarea

  • Endpoint: /tasks/{id}
  • Método: PUT
  • Middleware: CheckJwt (Requiere autenticación JWT)

Descripción:

Permite actualizar los detalles de una tarea específica.

Parámetros de la URL:

  • id: ID de la tarea a actualizar.

Cuerpo de la Solicitud:

{
  "title": "string",
  "description": "string"
}
  • title: Nuevo título de la tarea (obligatorio).
  • description: Nueva descripción de la tarea (obligatorio).

Respuestas:

CódigoDescripción
200Tarea actualizada exitosamente.
400Error en la solicitud (formato inválido o campos vacíos).
404La tarea especificada no fue encontrada.
500Error al guardar la tarea en la base de datos.

Ejemplo de Cuerpo de la Solicitud:

{
  "title": "Actualizar informe",
  "description": "Completar la sección de análisis de datos"
}

Ejemplo de Respuesta:

{
  "id": 1,
  "title": "Actualizar informe",
  "description": "Completar la sección de análisis de datos",
  "done": false,
  "user_id": 1,
  "created_at": "2024-01-01T12:00:00Z",
  "updated_at": "2024-01-02T12:00:00Z"
}

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author