Endpoints
LISTA DE ENDPOINTS
Autenticación
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
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
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
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
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
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
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
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
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
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
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
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
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
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