2. js / lib / calculaDtoParaSuscripcion.js

1
/**
2
 * Devuelve una literal de objeto que se puede usar para enviar
3
 * en formato JSON al servidor.
4
 * DTO es un acrónimo para Data Transder Object, u
5
 * objeto para transferencia de datos.
6
 * @param { PushSubscription } suscripcion
7
 */
8
export function calculaDtoParaSuscripcion(suscripcion) {
9
 const key = suscripcion.getKey("p256dh")
10
 const token = suscripcion.getKey("auth")
11
 const supported = PushManager.supportedContentEncodings
12
 const encodings = Array.isArray(supported) && supported.length > 0
13
  ? supported
14
  : ["aesgcm"]
15
 const endpoint = suscripcion.endpoint
16
 const publicKey = key === null
17
  ? null
18
  : btoa(String.fromCharCode.apply(null, new Uint8Array(key)))
19
 const authToken = token === null
20
  ? null
21
  : btoa(String.fromCharCode.apply(null, new Uint8Array(token)))
22
 const contentEncoding = encodings[0]
23
 return {
24
  endpoint,
25
  publicKey,
26
  authToken,
27
  contentEncoding
28
 }
29
}
30
skip_previous skip_next