Endpoints

LISTA DE ENDPOINTS

Autenticación

Método
Ruta
Descripción
Auth

POST

/auth/register

Registro con token de Firebase

POST

/auth/login

Login con token de Firebase

POST

/auth/refresh

Refresca el JWT usando refresh token

GET

/auth/validate

Verifica si el JWT actual es válido

Usuarios

Método
Ruta
Descripción
Auth

GET

/users/

Obtener todos los usuarios

✅ (ADMIN)

GET

/users/{id}

Obtener usuario por ID

PUT

/users/{id}

Modificar usuario por ID

DELETE

/users/{id}

Eliminar usuario por ID

✅ (ADMIN)

PUT

/users/setPremium

Convertirse en usuario premium

GET

/users/isPremium

Saber si el usuario actual es premium

PUT

/users/changeSubscriptionAdmin/{id}

Cambiar suscripción de otro usuario (ADMIN)

✅ (ADMIN)

Imágenes de perfil

Método
Ruta
Descripción
Auth

PUT

/users/profile-image

Subir imagen de perfil

GET

/users/profile-image

Obtener imagen de perfil

DELETE

/users/profile-image

Eliminar imagen de perfil

Vehículos

Método
Ruta
Descripción
Auth

POST

/vehicles/init

Inicializar vehículos por defecto

GET

/vehicles

Obtener todos los vehículos del usuario

GET

/vehicles/{type}

Obtener un vehículo por tipo

PUT

/vehicles/{type}

Editar un vehículo por tipo

Rutas

Método
Ruta
Descripción
Auth

POST

/routes/

Crear nueva ruta

GET

/routes/{id}

Obtener una ruta específica

GET

/routes/user

Obtener todas las rutas del usuario

PUT

/routes/{id}

Editar una ruta

DELETE

/routes/{id}

Eliminar una ruta

Imágenes de rutas

Método
Ruta
Descripción
Auth

POST

/routes/{routeId}/images

Subir imagen a una ruta

GET

/routes/{routeId}/images

Obtener imágenes de una ruta

DELETE

/routes/{routeId}/images/{imageId}

Eliminar imagen de una ruta

Pines de rutas

Método
Ruta
Descripción
Auth

POST

/route-pins/

Crear un pin geográfico en una ruta

GET

/route-pins/route/{routeId}

Obtener todos los pines de una ruta

DELETE

/route-pins/{id}

Eliminar un pin

EXPLICACION DE CADA ENDPOINT

Autenticación

Endpoint
Explicación detallada

POST /auth/register

Registra un nuevo usuario. Recibe un Firebase Token y datos de usuario, los valida, los guarda en la BBDD, y devuelve JWT + Refresh Token.

POST /auth/login

Inicia sesión. Verifica el Firebase Token, busca el usuario en BBDD, y si es válido, devuelve JWT + Refresh Token.

POST /auth/refresh

Verifica el refresh token enviado y, si es válido, devuelve un nuevo JWT y nuevo refresh token.

GET /auth/validate

Verifica que el JWT enviado sigue siendo válido y no ha expirado. Si lo es, no devuelve error (200 OK).

Usuarios

Endpoint
Explicación detallada

GET /users/

Devuelve una lista de todos los usuarios registrados. Solo accesible para administradores.

GET /users/{id}

Devuelve los datos del usuario con el ID especificado. Solo accesible si el usuario está autenticado.

PUT /users/{id}

Permite modificar los datos de un usuario. Solo accesible para el usuario autenticado.

DELETE /users/{id}

Elimina al usuario con el ID indicado. Solo puede hacerlo un administrador.

PUT /users/setPremium

Convierte al usuario actual en premium. Cambia el estado en la base de datos.

GET /users/isPremium

Devuelve si el usuario actual tiene cuenta premium (booleano).

PUT /users/changeSubscriptionAdmin/{id}

Cambia el estado premium de un usuario desde el panel de administrador.

Imágenes de perfil

Endpoint
Explicación detallada

PUT /users/profile-image

Sube una nueva imagen de perfil para el usuario actual.

GET /users/profile-image

Recupera la imagen de perfil del usuario actual.

DELETE /users/profile-image

Elimina la imagen de perfil del usuario actual.

Vehículos

Endpoint
Explicación detallada

POST /vehicles/init

Crea automáticamente los vehículos por defecto para un nuevo usuario. Se suele ejecutar al registrarse.

GET /vehicles

Devuelve todos los vehículos que tiene el usuario.

GET /vehicles/{type}

Devuelve los datos de un vehículo del tipo especificado (por ejemplo: coche, bici, etc).

PUT /vehicles/{type}

Actualiza los datos de un vehículo específico (por tipo).

Rutas

Endpoint
Explicación detallada

POST /routes/

Crea una nueva ruta. Se le pasan detalles como nombre, distancia, dificultad, etc.

GET /routes/{id}

Devuelve los datos de una ruta específica por su ID.

GET /routes/user

Devuelve todas las rutas creadas por el usuario autenticado.

PUT /routes/{id}

Permite editar una ruta específica (nombre, descripción, etc.).

DELETE /routes/{id}

Elimina la ruta con el ID dado.

Imágenes de rutas

Endpoint
Explicación detallada

POST /routes/{routeId}/images

Sube una imagen asociada a una ruta concreta.

GET /routes/{routeId}/images

Devuelve todas las imágenes asociadas a esa ruta.

DELETE /routes/{routeId}/images/{imageId}

Elimina una imagen concreta de una ruta.

Pines de rutas

Endpoint
Explicación detallada

POST /route-pins/

Crea un nuevo pin en una ruta (punto GPS con info adicional).

GET /route-pins/route/{routeId}

Devuelve todos los pines que pertenecen a una ruta específica.

DELETE /route-pins/{id}

Elimina un pin por su ID.

Última actualización