Layer-api-template-service

De Plataforma COA Crowd
Saltar a: navegación, buscar

Servicio encargado de administrar los templates usados por el servicio de mensajería. Permite consultar, editar, agregar y renderizar los temples con la información que se le envíe.

Dependencias

Dependencias que necesita el servicio para poder funcionar de cuerdo a la validación de negocio que se necesite.

Máquina de estados

Bases de datos

El servicio cuenta con su propia base de datos para almacenarlos y posteriormente manipularlos.

Schema Tablas
serv_layer_api_template_service
TABLE template (
    id_template varchar(30),
    tipo_template varchar(30) NOT NULL,
    template varchar(2000),
    updated_at timestamp NULL,
    created_at timestamp

NULL,


 CONSTRAINT configuraciones_id_template_key UNIQUE (id_template)
);

Endpoints

/edit

/template/edit

Este endpoint de tipo post permite agrega o modifica un template, recibe un objeto con un campo id, una clasificación o tipo y el template en sí mismo. Los templates tienen la facilidad de llevar variables que se llenaran con información desde el servicio de Layer-api-message-rules-service, estas variables se especifican con un nombre entre corchetes [ ]. Se presentará un ejemplo de body.

{
"id_template": "template_1",
"tipo_template": "template_sms",
"template": "Hola [nombre], gusto en saludarte"
}

Este body es usado tanto para agregar un nuevo template como para editar.

{
"id_template": "template_1",
"tipo_template": "template_sms",
"template": "Hola [nombre], que tengas un día lleno de [emocion]"
}

Para ambos casos recibiremos un objeto con los mismos datos que especificamos.

200 OK Response body
{
"id_template": "template_1",
"tipo_template": "template_sms",
"template": "Hola [[${nombre}]], que tengas un día lleno de [[${emocion}]]",
"created_at": 1659481158615,
"updated_at": 1659481158615
}

Internamente el servicio cambia la notación de las variables para que sea mas amigable con nuestro sistema.

/delete

/template/delete

Para eliminar un template solo es necesario enviarle un objeto con el identificador del template.

{
"id_template": "template_1"
}

Este endpoint nos regresará un codigo de confirmación.

204 OK 

/show

/template/show

Este endpoint permite visualizar todos o un solo template en específico. Se presentará un ejemplo de body.

{
"id_template": "template_1"
}

Este body es usado para mostrar solo el templete identificado como "template_1", recibiremos una lista con los datos que especificamos.

200 OK Response body
[
{
"id_template": "template_1",
"tipo_template": "template_sms",
"template": "Hola [[${nombre}]], que tengas un día lleno de [[${emocion}]]",
"created_at": 1659481158615,
"updated_at": 1659481158615
}
]

/render

/template/render

Este endpoint puede recibir un json en forma de texto o el json con el identificador del template y la data que se usara para reemplazar en las variables del mismo de la siguiente manera:

{
"id_template": "template_1",
"data":{
"nombre":"Paco",
"emocion":"alegria"
}
}

Una vez el servicio renderiza el mensaje con las variables que le enviemos nos regresara el texto final.

200 OK Response body
{
"renderTemplate": "Hola Paco, que tengas un día lleno de alegria"
}

Elementos que lo consumen

El servicio es consumido por:

Layer-api-message-rules-service

Swagger

link de swagger de calidad swagger