UNPKG

@bonsaif/bonsaif-wa

Version:

Utileria para poder consumir servicios de WhatsApp CloudApi

316 lines (278 loc) 10.6 kB
const servicioGupshup = require('./service_gupshup'); //Datos de acceso let obj = { app_id: 'appIdGupshup', tokenAcceso: 'TokenAccesoGupshup', apiKey: 'ApiKeyGupshup', debug: false } //Obtener template let objTemplate = { id_template : 'id template' } //template unicamente texto let objTemplateSimple = { elementName : 'nombre del template', languageCode: 'lenguaje del template', content: 'Contenido del mensaje', category: 'Categoria del mensaje', vertical: 'test', templateType: 'Tipo del template', example: 'Muestra del template' } //template unicamente texto let objTemplateEncabezado = { elementName : 'nombre del template', languageCode: 'lenguaje del template', content: 'Contenido del mensaje', category: 'Categoria del mensaje', vertical: 'test', templateType: 'Tipo del template', example: 'Muestra del template', header: 'Encabezado del template', enableSample: true, exampleHeader: 'Muestra del encabezado del template', footer: 'Pie de pagina del template' } let objTemplateEncabezadoEditado = { content: 'Contenido del mensaje', category: 'Categoria del mensaje', vertical: 'test', templateType: 'Tipo del template', example: 'Muestra del template', header: 'Encabezado del template', enableSample: true, exampleHeader: 'Muestra del encabezado del template', footer: 'Pie de pagina del template', templateID: 'id del template' } let objTemplateImagen = { elementName : 'nombre del template', languageCode: 'lenguaje del template', content: 'Contenido del mensaje', category: 'Categoria del mensaje', vertical: 'test', templateType: 'Tipo del template', example: 'Muestra del template', exampleMedia: 'URL donde se encuentra alojada la imagen', enableSample: true, footer: 'Pie de pagina del template' } let objMensajeTemplate = { source: 'Numero Origen del mensaje', 'src.name': 'Nombre de la app', destination: 'Numero destinatario del mensaje', template: '{"id": "id del template","params":[]}' } let objMensaje = [{ source: 'Numero Origen del mensaje', 'src.name': 'Nombre de la app', destination: 'Numero destinatario del mensaje', message: '{"type": "Tipo del mensaje","text": "Contenido del mensaje","previewUrl": false}' }] //Borrar template por nombre const borrarTemplate = { name: 'Nombre del template a eliminar' } const updateMediaObj = { path : `pathArchivo` } const service_MetaGupshup = new servicioGupshup.WAMetaServiceGupshup(obj); /*----obtener todos los templates----*/ //obtenerTemplates(); /*----obtener un template por ID----*/ //obtenerTemplatexID(objTemplate); /*----Crear un template----*/ //CrearTemplate(objTemplateImagen); /*----Editar un template----*/ //editarTemplate(objTemplateEncabezadoEditado); /*----Borrar template por nombre----*/ //BorrarTemplate(borrarTemplate); /*----Obtener detalle de la WABA----*/ //obtenerDetalleWABA(); /*----Enviar Mensaje por template ----*/ //enviarMensajeMeta(objMensaje); /*----Enviar Mensaje por template ----*/ //enviarMensajeTemplate(objMensajeTemplate); /*----Subir Archivo Multimedia para Templates ----*/ //uploadMediaGupshup(updateMediaObj); function obtenerTemplates(){ describe ('test templates', () => { test('obtener templates', async () => { let jsonTemplates = {}; await service_MetaGupshup.getTemplates({}) .then(res => { console.log('templates: ', res.status); //expect(res).not.toBeUndefined(); expect(res.status).toBe(200); return res.json(); }) .then(jsonResponse => { jsonTemplates = jsonResponse; console.log('jsonTemplates', jsonTemplates); //expect(jsonTemplates.data).toBeDefined(); //expect(jsonTemplates.data.length).toBeGreaterThan(0); }); }); }); } function obtenerTemplatexID(objTemplate){ describe ('test templates', () => { test('obtener template x ID', async () => { let jsonTemplates = {}; await service_MetaGupshup.getTemplate(objTemplate) .then(res => { console.log('templates: ', res.status); //expect(res).not.toBeUndefined(); expect(res.status).toBe(200); return res.json(); }) .then(jsonResponse => { jsonTemplates = jsonResponse; console.log('jsonTemplates', jsonTemplates); //expect(jsonTemplates.data).toBeDefined(); //expect(jsonTemplates.data.length).toBeGreaterThan(0); }); }); }); } function CrearTemplate(objTemplate){ describe ('test templates', () => { test('Crear template', async () => { let jsonTemplates = {}; await service_MetaGupshup.insertTemplate(objTemplate) .then(res => { console.log('templates: ', res); //expect(res).not.toBeUndefined(); expect(res.status).toEqual('success'); return res;//.json(); }) .then(jsonResponse => { jsonTemplates = jsonResponse; console.log('jsonTemplates', jsonTemplates); //expect(jsonTemplates.data).toBeDefined(); //expect(jsonTemplates.data.length).toBeGreaterThan(0); }); }); }); } function editarTemplate(objTemplate){ describe ('test templates', () => { test('editar template', async () => { let jsonTemplates = {}; await service_MetaGupshup.updateTemplate(objTemplate) .then(res => { console.log('templates: ', res); //expect(res).not.toBeUndefined(); expect(res.status).toEqual('success'); return res;//.json(); }) .then(jsonResponse => { jsonTemplates = jsonResponse; console.log('jsonTemplates', jsonTemplates); //expect(jsonTemplates.data).toBeDefined(); //expect(jsonTemplates.data.length).toBeGreaterThan(0); }); }); }); } function BorrarTemplate(name){ describe ('test templates', () => { test('Borrar template por nombre', async () => { let jsonTemplates = {}; await service_MetaGupshup.deleteTemplate(name.name) .then(res => { console.log('templates: ', res); //expect(res).not.toBeUndefined(); expect(res.status).toEqual('success'); return res;//.json(); }) .then(jsonResponse => { jsonTemplates = jsonResponse; console.log('jsonTemplates', jsonTemplates); //expect(jsonTemplates.data).toBeDefined(); //expect(jsonTemplates.data.length).toBeGreaterThan(0); }); }); }); } function obtenerDetalleWABA(){ describe ('test templates', () => { test('Obtener Detalle WABA', async () => { let jsonTemplates = {}; await service_MetaGupshup.getAccountDetails() .then(res => { console.log('templates: ', res); //expect(res).not.toBeUndefined(); expect(res.status).toEqual('success'); return res;//.json(); }) .then(jsonResponse => { jsonTemplates = jsonResponse; console.log('jsonTemplates', jsonTemplates); //expect(jsonTemplates.data).toBeDefined(); //expect(jsonTemplates.data.length).toBeGreaterThan(0); }); }); }); } function enviarMensajeMeta(objMensaje){ describe ('test templates', () => { test('Enviar mensaje', async () => { let jsonTemplates = {}; await service_MetaGupshup.sendMessageMeta(objMensaje) .then(res => { console.log('templates: ', res[0][0]); //expect(res).not.toBeUndefined(); expect(res[0][0].resp.status).toEqual('submitted'); return res;//.json(); }) .then(jsonResponse => { jsonTemplates = jsonResponse; console.log('jsonTemplates', jsonTemplates); //expect(jsonTemplates.data).toBeDefined(); //expect(jsonTemplates.data.length).toBeGreaterThan(0); }); }); }); } function enviarMensajeTemplate(objMensajeTemplate){ describe ('test templates', () => { test('Enviar mensaje por template', async () => { let jsonTemplates = {}; await service_MetaGupshup.sendMessageTemplate(objMensajeTemplate) .then(res => { console.log('templates: ', res); //expect(res).not.toBeUndefined(); expect(res.status).toBe(200); return res;//.json(); }) .then(jsonResponse => { jsonTemplates = jsonResponse; console.log('jsonTemplates', jsonTemplates); //expect(jsonTemplates.data).toBeDefined(); //expect(jsonTemplates.data.length).toBeGreaterThan(0); }); }); }); } function uploadMediaGupshup(updateMediaObj){ describe ('test templates', () => { test('Subir media para template', async () => { let jsonTemplates = {}; await service_MetaGupshup.uploadMedia(updateMediaObj) .then(res => { console.log('Media: ', res); //expect(res).not.toBeUndefined(); expect(res.status).toEqual('success'); return res;//.json(); }) .then(jsonResponse => { jsonTemplates = jsonResponse; console.log('jsonMedia', jsonTemplates); //expect(jsonTemplates.data).toBeDefined(); //expect(jsonTemplates.data.length).toBeGreaterThan(0); }); }); }); }