Built motion from commit 9d7072cc.|2.5.39
[motion2.git] / server / api / whatsappMessage / whatsappMessage.model.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x4ba7=['WhatsappAccountId','type','twilio','accountSid','authToken','phone','messages','create','body','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','baseUrl','/messages/','text','POST','application/json','statuses','message_id','WhatsappMessage,\x20%s','lodash','util','../../config/logger','api','bluebird','path','rimraf','../../config/environment','exports','WhatsappMessage','messageId','fti_whatsapp_messages','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId','WhatsappInteraction','WhatsappInteractionId','then','update','createdAt','catch','error'];(function(_0x58d881,_0x57b5e2){var _0x56e3a4=function(_0xeb8b8e){while(--_0xeb8b8e){_0x58d881['push'](_0x58d881['shift']());}};_0x56e3a4(++_0x57b5e2);}(_0x4ba7,0x1d3));var _0x74ba=function(_0x58f69e,_0x533540){_0x58f69e=_0x58f69e-0x0;var _0x11ff67=_0x4ba7[_0x58f69e];return _0x11ff67;};'use strict';var _=require(_0x74ba('0x0'));var util=require(_0x74ba('0x1'));var logger=require(_0x74ba('0x2'))(_0x74ba('0x3'));var moment=require('moment');var BPromise=require(_0x74ba('0x4'));var rp=require('request-promise');var fetch=require('node-fetch');var fs=require('fs');var path=require(_0x74ba('0x5'));var rimraf=require(_0x74ba('0x6'));var config=require(_0x74ba('0x7'));var attributes=require('./whatsappMessage.attributes');module[_0x74ba('0x8')]=function(_0x20584c,_0x11408d){return _0x20584c['define'](_0x74ba('0x9'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0x74ba('0xa'),'fields':[_0x74ba('0xa')]},{'name':_0x74ba('0xb'),'fields':['body'],'type':_0x74ba('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x215821,_0xd13e97,_0x52f659){var _0x479d65=_0x20584c[_0x74ba('0xd')];var _0x8a3ca3=_0x215821[_0x74ba('0xe')]({'plain':!![]});if(_0x8a3ca3[_0x74ba('0xf')][_0x74ba('0x10')]()==='in'||_0x8a3ca3[_0x74ba('0xf')][_0x74ba('0x10')]()===_0x74ba('0x11')&&!_0x8a3ca3[_0x74ba('0x12')]&&!_[_0x74ba('0x13')](_0x8a3ca3[_0x74ba('0x14')])){_0x479d65[_0x74ba('0x15')]['findOne']({'where':{'id':_0x8a3ca3[_0x74ba('0x16')]}})[_0x74ba('0x17')](function(_0x3ae9e9){if(_0x3ae9e9){_0x3ae9e9[_0x74ba('0x18')]({'lastMsgAt':_0x8a3ca3[_0x74ba('0x19')],'lastMsgDirection':_0x8a3ca3[_0x74ba('0xf')][_0x74ba('0x10')]()});}})[_0x74ba('0x1a')](function(_0x29aa9c){console[_0x74ba('0x1b')](_0x29aa9c);});}if(_0x8a3ca3['direction']===_0x74ba('0x11')&&!_0x8a3ca3[_0x74ba('0x12')]){var _0x318b38;_0x479d65['WhatsappAccount']['find']({'where':{'id':_0x8a3ca3[_0x74ba('0x1c')]},'raw':!![]})[_0x74ba('0x17')](function(_0x27407c){_0x318b38=_0x27407c;if(_0x318b38&&_0x318b38[_0x74ba('0x1d')]){switch(_0x318b38[_0x74ba('0x1d')]){case _0x74ba('0x1e'):var _0x5b96bd=require(_0x74ba('0x1e'));if(_0x318b38[_0x74ba('0x1f')]&&_0x318b38[_0x74ba('0x20')]&&_0x318b38[_0x74ba('0x21')]){var _0x4b5137=new _0x5b96bd(_0x318b38['accountSid'],_0x318b38['authToken']);_0x4b5137[_0x74ba('0x22')][_0x74ba('0x23')]({'body':_0x8a3ca3[_0x74ba('0x24')],'to':_0x74ba('0x25')+_0x8a3ca3[_0x74ba('0x21')],'from':_0x74ba('0x25')+_0x318b38['phone'],'statusCallback':_0x318b38[_0x74ba('0x26')]+_0x74ba('0x27')+_0x8a3ca3['id']+_0x74ba('0x28')+_0x318b38[_0x74ba('0x29')]})[_0x74ba('0x17')](function(_0x1be9a1){if(_0x1be9a1[_0x74ba('0x2a')]){return _0x215821['update']({'messageId':_0x1be9a1[_0x74ba('0x2a')]});}})[_0x74ba('0x1a')](function(_0x1d19b8){logger[_0x74ba('0x1b')](_0x74ba('0x2b'),_0x74ba('0x2c'),_0x74ba('0x1e'),util[_0x74ba('0x2d')](_0x1d19b8,{'showHidden':![],'depth':null}));});}else{logger[_0x74ba('0x1b')]('WhatsappMessage,\x20%s,\x20%s,\x20%s',_0x74ba('0x2c'),_0x74ba('0x1e'),_0x74ba('0x2e'));}break;case'sinch':var _0x573c6c=_0x318b38[_0x74ba('0x1f')];var _0x40acc6=_0x318b38['authToken'];var _0x4933e4=_0x318b38[_0x74ba('0x2f')]+'/whatsapp/v1/'+_0x573c6c+_0x74ba('0x30');var _0x20996c={'to':[_0x8a3ca3[_0x74ba('0x21')]],'message':{'type':_0x74ba('0x31'),'text':_0x8a3ca3[_0x74ba('0x24')]}};var _0x285eca={'method':_0x74ba('0x32'),'uri':_0x4933e4,'headers':{'Authorization':'Bearer\x20'+_0x40acc6,'Content-Type':_0x74ba('0x33')},'body':_0x20996c,'json':!![]};rp(_0x285eca)[_0x74ba('0x17')](function(_0x566882){if(_0x566882[_0x74ba('0x34')][0x0][_0x74ba('0x35')]){return _0x215821[_0x74ba('0x18')]({'messageId':_0x566882[_0x74ba('0x34')][0x0][_0x74ba('0x35')]});}})[_0x74ba('0x1a')](function(_0xb5bca9){logger['err'](_0x74ba('0x36'),_0xb5bca9);});break;}}})['finally'](function(){_0x52f659();});}else{_0x52f659();}}},'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};