cc-utilities2 v0.0.41
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
Param | Descripción | Típo de dato | Obligatorio |
---|---|---|---|
_emailFrom | Email del remitente | String | :heavy_check_mark: |
_emailTo | Emails de los destinatarios | String[] | :heavy_check_mark: |
_templateName | Nombre de la plantilla configurada | String | :heavy_check_mark: |
_templateVars | Parámetros que se envian a la plantilla | Object | :heavy_check_mark: |
_messageBody | Mensaje adicional al cuerpo del correo | String | |
_emailResponseTo | Emails de respuestas | String[] | |
_emailCC | Emails con copia | String[] |
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
Param | Descripción | T¡ipo de dato | Obligatorio |
---|---|---|---|
_textMessageSMS | Cuerpo del mensaje | String | :heavy_check_mark: |
_cellPhoneNumberSMS | Nùmero de celular | String | :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');
};