@bonsaif/bonsaif-wa
Version:
Utileria para poder consumir servicios de WhatsApp CloudApi
316 lines (278 loc) • 10.6 kB
JavaScript
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);
});
});
});
}