Built motion from commit 994c64e1.|2.6.1
[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 _0xc3cd=['WhatsappMessage,\x20%s,\x20%s,\x20%s','inspect','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','statuses','message_id','err','util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment','./whatsappMessage.attributes','exports','define','whatsapp_messages','messageId','fti_whatsapp_messages','body','models','get','direction','toLowerCase','out','UserId','findOne','WhatsappInteractionId','then','createdAt','catch','error','secret','WhatsappAccount','find','WhatsappAccountId','twilio','accountSid','authToken','phone','messages','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','token','sid','update'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xc3cd,0x7e));var _0xdc3c=function(_0x155bdf,_0x47ac02){_0x155bdf=_0x155bdf-0x0;var _0x178439=_0xc3cd[_0x155bdf];return _0x178439;};'use strict';var _=require('lodash');var util=require(_0xdc3c('0x0'));var logger=require(_0xdc3c('0x1'))(_0xdc3c('0x2'));var moment=require('moment');var BPromise=require(_0xdc3c('0x3'));var rp=require(_0xdc3c('0x4'));var fetch=require('node-fetch');var fs=require('fs');var path=require('path');var rimraf=require(_0xdc3c('0x5'));var config=require(_0xdc3c('0x6'));var attributes=require(_0xdc3c('0x7'));module[_0xdc3c('0x8')]=function(_0x20c439,_0x1f8bc6){return _0x20c439[_0xdc3c('0x9')]('WhatsappMessage',attributes,{'tableName':_0xdc3c('0xa'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0xdc3c('0xb')]},{'name':_0xdc3c('0xc'),'fields':[_0xdc3c('0xd')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x2a42b3,_0x93c696,_0x3b01d1){var _0xcf99f3=_0x20c439[_0xdc3c('0xe')];var _0x59e9eb=_0x2a42b3[_0xdc3c('0xf')]({'plain':!![]});if(_0x59e9eb[_0xdc3c('0x10')][_0xdc3c('0x11')]()==='in'||_0x59e9eb['direction'][_0xdc3c('0x11')]()===_0xdc3c('0x12')&&!_0x59e9eb['secret']&&!_['isNil'](_0x59e9eb[_0xdc3c('0x13')])){_0xcf99f3['WhatsappInteraction'][_0xdc3c('0x14')]({'where':{'id':_0x59e9eb[_0xdc3c('0x15')]}})[_0xdc3c('0x16')](function(_0x1ed1b9){if(_0x1ed1b9){_0x1ed1b9['update']({'lastMsgAt':_0x59e9eb[_0xdc3c('0x17')],'lastMsgDirection':_0x59e9eb[_0xdc3c('0x10')]['toLowerCase']()});}})[_0xdc3c('0x18')](function(_0x2ba19d){console[_0xdc3c('0x19')](_0x2ba19d);});}if(_0x59e9eb['direction']===_0xdc3c('0x12')&&!_0x59e9eb[_0xdc3c('0x1a')]){var _0x47e264;_0xcf99f3[_0xdc3c('0x1b')][_0xdc3c('0x1c')]({'where':{'id':_0x59e9eb[_0xdc3c('0x1d')]},'raw':!![]})[_0xdc3c('0x16')](function(_0x4d6d31){_0x47e264=_0x4d6d31;if(_0x47e264&&_0x47e264['type']){switch(_0x47e264['type']){case'twilio':var _0x2bf86c=require(_0xdc3c('0x1e'));if(_0x47e264[_0xdc3c('0x1f')]&&_0x47e264[_0xdc3c('0x20')]&&_0x47e264[_0xdc3c('0x21')]){var _0x14029a=new _0x2bf86c(_0x47e264[_0xdc3c('0x1f')],_0x47e264[_0xdc3c('0x20')]);_0x14029a[_0xdc3c('0x22')]['create']({'body':_0x59e9eb['body'],'to':_0xdc3c('0x23')+_0x59e9eb['phone'],'from':'whatsapp:'+_0x47e264['phone'],'statusCallback':_0x47e264[_0xdc3c('0x24')]+_0xdc3c('0x25')+_0x59e9eb['id']+_0xdc3c('0x26')+_0x47e264[_0xdc3c('0x27')]})['then'](function(_0x235f9f){if(_0x235f9f[_0xdc3c('0x28')]){return _0x2a42b3[_0xdc3c('0x29')]({'messageId':_0x235f9f['sid']});}})[_0xdc3c('0x18')](function(_0x3569b8){logger[_0xdc3c('0x19')](_0xdc3c('0x2a'),'afterCreate',_0xdc3c('0x1e'),util[_0xdc3c('0x2b')](_0x3569b8,{'showHidden':![],'depth':null}));});}else{logger[_0xdc3c('0x19')](_0xdc3c('0x2a'),_0xdc3c('0x2c'),_0xdc3c('0x1e'),_0xdc3c('0x2d'));}break;case _0xdc3c('0x2e'):var _0x4c93f3=_0x47e264[_0xdc3c('0x1f')];var _0x438f03=_0x47e264['authToken'];var _0x27de8f=_0x47e264[_0xdc3c('0x2f')]+_0xdc3c('0x30')+_0x4c93f3+_0xdc3c('0x31');var _0x1a36ac={'to':[_0x59e9eb[_0xdc3c('0x21')]],'message':{'type':_0xdc3c('0x32'),'text':_0x59e9eb[_0xdc3c('0xd')]}};var _0x34f746={'method':_0xdc3c('0x33'),'uri':_0x27de8f,'headers':{'Authorization':_0xdc3c('0x34')+_0x438f03,'Content-Type':'application/json'},'body':_0x1a36ac,'json':!![]};rp(_0x34f746)[_0xdc3c('0x16')](function(_0x1c3002){if(_0x1c3002[_0xdc3c('0x35')][0x0]['message_id']){return _0x2a42b3[_0xdc3c('0x29')]({'messageId':_0x1c3002['statuses'][0x0][_0xdc3c('0x36')]});}})['catch'](function(_0x27c820){logger[_0xdc3c('0x37')]('WhatsappMessage,\x20%s',_0x27c820);});break;}}})['finally'](function(){_0x3b01d1();});}else{_0x3b01d1();}}},'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};