0.0.41 • Published 3 years ago

cc-utilities2 v0.0.41

Weekly downloads
-
License
ISC
Repository
-
Last release
3 years ago

ciencuadras-commons-node-lib

Módulo de utilidades de ciencuadras desarrollada en node que permite implementar servicios transversales de conexión a base de datos por medio de sequalize, conexión al ParameterStore de AWS, procesamiento de mensajería de texto y correo electrónico y otras más.

Librearia desarrollada en node versión 14.

Tabla de Contenido

Intrucciones Instalación Módulo SQS Envío Email Envío SMS Parameter Store y Conexión a base de datos Modelo de respuestas de las lambda

Instrucciones Instalación

npm install cc-utilities

Importar Módulo SQS

Envío Email

import { ParametersSQS, ResponseSQS, SendNotificationSQS, TypeNotification } from "cc-utilities";
export class UseParameterStore {
  constructor() {
  }

  sendNotification(){
    let response: ResponseSQS;
    let parametersSQS: ParametersSQS = new ParametersSQS(TypeNotification.EMAIL);
    const parameterSendEmail = {
      PARAMETER1: "parameter 1",
      PARAMETER2: "parameter 2",
      PARAMETER3: "parameter 3"
    }
    parametersSQS.setParametersSQSEmail(
      "emailfrom@ciencuadras.com",
      ["emailTo1@nn.com", "emailToN@nn.com"],
      "Nombre del template",
      parameterSendEmail
    );
    let sendNotificationEmail: SendNotificationSQS = new SendNotificationSQS(parametersSQS);
    response = await sendNotificationEmail.sendToSQS();
  }
}
Parámetros de la clase ParametersSQS llamando al método setParametersSQSEmail
ParamDescripciónTípo de datoObligatorio
_emailFromEmail del remitenteString:heavy_check_mark:
_emailToEmails de los destinatariosString[]:heavy_check_mark:
_templateNameNombre de la plantilla configuradaString:heavy_check_mark:
_templateVarsParámetros que se envian a la plantillaObject:heavy_check_mark:
_messageBodyMensaje adicional al cuerpo del correoString
_emailResponseToEmails de respuestasString[]
_emailCCEmails con copiaString[]

Envíar SMS

import { ParametersSQS, ResponseSQS, SendNotificationSQS, TypeNotification } from "cc-utilities";
export class useSQS {
  constructor() {
  }

  sendNotification(){
    let response: ResponseSQS;
    let parametersSQS: ParametersSQS = new ParametersSQS(TypeNotification.SMS);
    parametersSQS.setParametersSQSSMS(
      "Mensaje de texto",
      "Número de celular"
    );
    let sendNotificationSMS: SendNotificationSQS = new SendNotificationSQS(parametersSQS);
    response = await sendNotificationSMS.sendToSQS();
  }
}
Parámetros de la clase ParametersSQS llamando al método setParametersSQSSMS
ParamDescripciónT¡ipo de datoObligatorio
_textMessageSMSCuerpo del mensajeString:heavy_check_mark:
_cellPhoneNumberSMSNùmero de celularString:heavy_check_mark:

Importar módulo SSM Parameter Store y conección a BD

import { SSMStore, DBConnection } from "cc-utilities";
export class useParameterStore {
  SSMStore.setPath('contexto o ambiente: dev | qa | stage | prod');
  SSMStore.setRegion("Región aws: us-east-1");
  const parameters = await SSMStore.getParameters();
  const db = DBConnection.getInstance(parameters);
  const pool = db.getDb();
  /*
    Se usa el pool de connection para los llamdos a la BD
  */
}

Por defecto, el modelo de la clase ParametersKeyConnection contiene en los atributos los valores necesarios para extraer de los parametros del SSM ParameterStore previamente traidos lo necesario para realizar la coneción a la BD, sin tener que manipualar esta clase; sin embargo, si desea que el tipo de base de datos, o el valorpara extrar el puerto, host, etc. de la conexión sean diferentes, solo necesita instanciar la clase y setear los valores que crea necesarios:

import { SSMStore, DBConnection, ParametersKeyConnection } from "cc-utilities";
export class useParameterStore {
  SSMStore.setPath('contexto o ambiente: dev | qa | stage | prod');
  SSMStore.setRegion("Región aws: us-east-1");
  const parameters = await SSMStore.getParameters();
  let paramsConnection:ParametersKeyConnection = new ParametersKeyConnection();
  paramsConnection.DBTYPE = "sql";
  paramsConnection.DBHOST = "new/db/host"
  /*
    Se setean los parametros requeridos
  */

  const db = DBConnection.getInstance(parameters);
  db.setParametersKeyConnection(paramsConnection);
  const pool = db.getDb();
  /*
    Se usa el pool de connection para los llamdos a la BD
  */
}

Modelo de respuestas para las lambda

Esta librearia contiene una estructura genérica para ser usada al momento de responder el servicio al clientes.

  • ResponseModel
  • ResponseTypes

Solo necesita instanciar las clases y usarlas como lo requiera.

Importar y utilizar módulo logger

Para crear una instancia del logger utilizar la función createLogger y pasarle como parámetro el nivel de logging deseado.

Los niveles soportados son:

  • trace
  • debug
  • info
  • warn
  • error
  • fatal
  • silent

Para loggear utilizar getLogger, si no se ha llamado anteriormente createLogger especificando el nivel de logging, por defecto se loggea con nivel error.

import { createLogger, getLogger } from "./logger/logger";
export const handler = async (): () => {
    createLogger('info');
    getLogger().info('Hello logger');
};