Saltar a contenido

POST /api/v2/notifications/token

Registra o actualiza el token push de un dispositivo para el usuario autenticado.

  • Base v2: /api/v2
  • Auth: protectToken

Request

URL

POST /api/v2/notifications/token

Headers

Authorization: Bearer <token>
Content-Type: application/json

Body

{
  "deviceId": "string",
  "platform": "ios",
  "expoPushToken": "ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]",
  "deviceName": "iPhone 15 Pro"
}

Campos: - deviceId (requerido): identificador estable del dispositivo. - platform (requerido): "ios" | "android". - expoPushToken (requerido): token Expo con formato ExponentPushToken[...]. - deviceName (opcional): nombre legible.


Response

200 OK

{
  "success": true,
  "message": "Device token registered successfully",
  "deviceId": "string"
}

Validaciones / errores

  • 400 si faltan campos requeridos.
  • 400 si platform no es ios|android.
  • Error si el usuario no existe (caso anómalo si el JWT es válido).

Persistencia (Base de datos)

Tabla: user_device_tokens

Comportamiento: - Si no existe (userId, deviceId) → crea registro. - Si ya existe → actualiza expoPushToken, platform, deviceName (si llega) y lastActiveAt.

Campos principales: - userId (FK a users.id) - deviceId - platform - expoPushToken - deviceName - lastActiveAt

Índices: - único (userId, deviceId) - índice por expoPushToken