-
Notifications
You must be signed in to change notification settings - Fork 12
Andes Services
Andrés edited this page Sep 24, 2021
·
11 revisions
Los servicios son configurables por base de datos.
- HTTP Request
type: http-client
- Mongo Query
- Dato estático
type: static-client
- Dato dinámico
type: dynamic-client
- Envio email
type: email-client
- Función JavaScript
- configuraciones generales
- name (string): configura el nombre (se usa para llamarlo)
- type (string): configura el tipo (determina qué función va usar @andes/services)
- logging (object): nivel del log
- nodo
configuration
- url (string): la dirección externa del servicio
- headers (object): los headers que espera el servicio
- method (string): el método de request
- body (object): los datos a enviar (en caso de que sea POST, PUT, PATCH)
- form (bool): determina si los datos se envían como un form HTML
- json (bool): determina si los datos se envían como JSON
- cache (bool): determina si se cachea
// collection: andes-services
// mongo document
{
"name" : "push-notifications-default",
"type" : "http-client",
"configuration" : {
"url" : "https://fcm.googleapis.com/fcm/send",
"headers" : {
"Content-Type" : "application/json",
"Authorization" : "key=KEY"
},
"method" : "POST", // GET, DELETE, PATCH...
"body" : { // objeto principal
"notification" : {
"title" : "$.title", // reemplazo 1
"body" : "$.body", // reemplazo 2
"sound" : "default", // dato estático
"icon" : "fcm_push_icon" // dato estático
},
"data" : {
"extraData" : "$.extraData" // reemplazo 3
},
"to" : "$.to", // reemplazo 4
"priority" : "$.priority", // reemplazo 5
"restricted_package_name" : "", // dato estático
"time_to_live" : "$.time_to_live" // reemplazo 6
},
"form" : false, // true => datos encodeados como form HTML
"json" : true // true => datos como JSON
},
"logging" : {
"error" : true
"info" : false
}
}
// .ts
// Datos de la notificación push que ve el usuario
const notificacion = {
title: 'Aviso de suspensión de turno',
body: 'Tocá para ver los detalles'
};
// Datos extra (se envían pero no se ven en la push)
const extraData: {
action: 'suspender-turno',
id: pacienteId
}
const body = {
title: 'Andes Salud', // reemplazo 1
body: notificacion, // reemplazo 2
extraData: extraData, // reemplazo 3
to: 'USER_TOKEN', // reemplazo 4
priority: 'high', // reemplazo 5
time_to_live: 0, // reemplazo 6
};
// Ejemplo 1: Enviar push con http-client y recibir la respuesta (sincrónico)
const respuesta = await services.get('push-notifications-default').exec(body);
// Ejemplo 2: Enviar push con http-client e ignorar la respuesta (asincrónico)
services.get('push-notifications-default').exec(body);