@baumdigital/notification-helper

1.2.4 • Public • Published

@baumdigital/notification-helper

Este modulo se encarga de todo lo relacionado a notificaciones push y pinpoint en nodejs. #Testing Correr "npm test" para generar reporte de test, se generara una carpeta llamada mochawesome-report, en la cual habra un .html con el reporte del test. Reivsar el reporte del test para ejemplo de utilizacion.

    npm test

Uso

##Funcionalidad

const moment = require("moment");
const NotificationHelper = require("@baumdigital/notification-helper");
const notificationConfig = {
  pinpointAppId: "example-id-51321",
  defaultSegments: {
    // Si estos segmentes no existen los creara y saldran en consola.
    es: {
      idSegment: "exampleidSegmentES",
      idIdioma: "es"
    },
    en: {
      idSegment: "exampleIdSegementEN"
    }
  }
};
const awsSDK = {
  roleArn: "example",
  accessKeyId: "example",
  secretAccessKey: "example",
  region: "example"
};
const options = {
  idiomas: ["es", "en"] // idiomas con los que trabajara el helper
};

const Notification = new NotificationHelper(
  notificationConfig,
  awsSDK,
  options
);

const userAttributes = {
  // userAttributes es un key value de atributos que queramos
  nombre: "Daniel",
  apellido: "Montealegre",
  email: "daniel@baum.digital",
  pais: "CR",
  telefono: "222222222",
  genero: "M"
};
// Crea un endpoint nuevo asociado con el id de usuario 1
Notification.UpdateEndpointInfo({
  idUsuario: "1",
  idDevice: "ascmasca-scasocasoc-ascoasca",
  platform: "android",
  idIdioma: "es",
  ifDelete: false,
  attributes: userAttributes
});
// Crea un endpoint nuevo de tipo guest
Notification.UpdateEndpointInfo({
  idDevice: "ascmasca-scasocasoc-ascoasca",
  platform: "android",
  idIdioma: "es",
  ifDelete: false
});
// Actualizada el idioma y los userAttributes de todos los endpoints asociados al id 1
Notification.UpdateUserEnpdointsInfo({
  idUsuario: "1",
  idIdioma: "es",
  attributes: userAttributes
});
const idDevice = "zxczxczxczxv";
const idUsuario = "1";
const tituloObj = {
  es: "titulo example",
  en: "Example title"
};
const mensajeObj = {
  es: "Mensaje de ejemplo",
  en: "Example message"
};
const payload = {
  // es un key value de strings, solo de un nivl de profundidad (no objetos dentro de objeto)
  origin: "example-1",
  idNotification: "1231-1423542"
};
const idIdioma = "es"; // idioma default a utilizar
//Envia un push directo a un idDevice(si no se da un idUsuario) o Se envia a todos los endpoints asociados al id de usuario. Si se envia idDevivce y idUsuario, se toma con mayor prioridad el idUsuario
Notification.enviarNotificationPersonal(
  idDevice,
  idUsuario,
  tituloObj,
  mensajeObj,
  payload,
  idIdioma
);

Notification.enviarEmail(
  ["baum@baum.digital"],
  null,
  { charset: "UTF-8", data: "Test de envio" },
  { charset: "UTF-8", data: "<html> <html>" },
  "baum-envios@baum.digital",
  "baum-feed@baum.digital",
  "baum-reply@baum.digital"
);

const id = "asdasd"; // Un identificador con el que queramos reconocer nuestra campaña en pinpoint
const name = "nombre"; // nombre de la campaña que vamos a crear
const descripcion = "descripcion"; // Descripcion de la campaña que estamos creando
const programaObj = {
  // Es el schedule que va a tener la campaña
  fechaInicio: moment().add("2", "days"),
  fechaFin: moment().add("4", "days"),
  frecuencia: 3, //  1- Una vez 2- Cada Hora 3- Cada día 4- Cada semana 5- Cada mes
  horaInicioBloqueo: "12:00",
  horaFinBloqueo: "20:00"
};
const userAttributes = {
  // filtrar por atributos de usuaio
  nombre: ["daniel", "Juan"],
  genero: ["M"]
};
// Hace un envio masivo en pinpoint mediante campañas, crea una campaña para cada idioma configurado en el options
Notification.enviarNotificacionCampaigns(
  id,
  name,
  descripcion,
  programaObj,
  userAttributes,
  tituloObj,
  mensajeObj,
  payload
);
const idsCampaignPinpoint = [
  { idCampaniaPinpoint: "asdasdasd123", idIdioma: "es" },
  { idCampaniaPinpoint: "asdacvdgd", idIdioma: "en" }
];
// Actualiza campañas en pinpoint si estas aun estan activas o pendientes de envio
Notification.updateNotificacionCampaings({
  id,
  idsCampaignPinpoint,
  name,
  descripcion,
  programaObj,
  userAttributes,
  tituloObj,
  mensajeObj,
  payload
});
const state = "activate"; // 'activate','deactivate'
// Activa o desactiva campañas en pinpoint
Notification.updateCampaignState(idsCampaignPinpoint, state);
// Elimina campañas en pinpoint
Notification.deleteNotificacionCampaings(idsCampaignPinpoint);
// valida si se puede actualizar o no un array de campañas de pinpoin
Notification.validateUpdateCampaignsPinpoint(idsCampaignPinpoint);
// Trae el id de pinpoint del segmento default del idioma dado. Si no existe segmento default para ese idioma se crea uno nuevo y se actualiza la configuracion de la
// instancia de notification. El id es retornado, ya sea el de la configuracion o el creado
Notification.getDefaultSegmentId("es");

Readme

Keywords

none

Package Sidebar

Install

npm i @baumdigital/notification-helper

Weekly Downloads

2

Version

1.2.4

License

ISC

Unpacked Size

81.1 kB

Total Files

8

Last publish

Collaborators

  • baumdigital