Built motion from commit cb845558.|2.6.34
[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 _0x18ed=['bluebird','request-promise','node-fetch','path','rimraf','./whatsappMessage.attributes','exports','define','WhatsappMessage','messageId','fti_whatsapp_messages','FULLTEXT','models','get','direction','toLowerCase','out','UserId','WhatsappInteraction','WhatsappInteractionId','then','update','createdAt','error','secret','type','twilio','phone','authToken','messages','create','body','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','token','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','accountSid','baseUrl','/messages/','text','POST','Bearer\x20','application/json','statuses','message_id','catch','err','WhatsappMessage,\x20%s','finally','utf8mb4','lodash','api'];(function(_0x257bd0,_0x37b28b){var _0x118b8c=function(_0x2b6443){while(--_0x2b6443){_0x257bd0['push'](_0x257bd0['shift']());}};_0x118b8c(++_0x37b28b);}(_0x18ed,0xe6));var _0xd18e=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0x18ed[_0x3ab51d];return _0x29a04e;};'use strict';var _=require(_0xd18e('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xd18e('0x1'));var moment=require('moment');var BPromise=require(_0xd18e('0x2'));var rp=require(_0xd18e('0x3'));var fetch=require(_0xd18e('0x4'));var fs=require('fs');var path=require(_0xd18e('0x5'));var rimraf=require(_0xd18e('0x6'));var config=require('../../config/environment');var attributes=require(_0xd18e('0x7'));module[_0xd18e('0x8')]=function(_0x4e9444,_0x5d4bd0){return _0x4e9444[_0xd18e('0x9')](_0xd18e('0xa'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':'messageId','fields':[_0xd18e('0xb')]},{'name':_0xd18e('0xc'),'fields':['body'],'type':_0xd18e('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x435994,_0x51042b,_0x2d4bf8){var _0x13a1ff=_0x4e9444[_0xd18e('0xe')];var _0x26b9bd=_0x435994[_0xd18e('0xf')]({'plain':!![]});if(_0x26b9bd[_0xd18e('0x10')][_0xd18e('0x11')]()==='in'||_0x26b9bd['direction'][_0xd18e('0x11')]()===_0xd18e('0x12')&&!_0x26b9bd['secret']&&!_['isNil'](_0x26b9bd[_0xd18e('0x13')])){_0x13a1ff[_0xd18e('0x14')]['findOne']({'where':{'id':_0x26b9bd[_0xd18e('0x15')]}})[_0xd18e('0x16')](function(_0x569153){if(_0x569153){_0x569153[_0xd18e('0x17')]({'lastMsgAt':_0x26b9bd[_0xd18e('0x18')],'lastMsgDirection':_0x26b9bd['direction'][_0xd18e('0x11')]()});}})['catch'](function(_0x2c5032){console[_0xd18e('0x19')](_0x2c5032);});}if(_0x26b9bd[_0xd18e('0x10')]===_0xd18e('0x12')&&!_0x26b9bd[_0xd18e('0x1a')]){var _0x590b89;_0x13a1ff['WhatsappAccount']['find']({'where':{'id':_0x26b9bd['WhatsappAccountId']},'raw':!![]})[_0xd18e('0x16')](function(_0x2f97f3){_0x590b89=_0x2f97f3;if(_0x590b89&&_0x590b89[_0xd18e('0x1b')]){switch(_0x590b89['type']){case _0xd18e('0x1c'):var _0x1a9bb2=require(_0xd18e('0x1c'));if(_0x590b89['accountSid']&&_0x590b89['authToken']&&_0x590b89[_0xd18e('0x1d')]){var _0x420ad5=new _0x1a9bb2(_0x590b89['accountSid'],_0x590b89[_0xd18e('0x1e')]);_0x420ad5[_0xd18e('0x1f')][_0xd18e('0x20')]({'body':_0x26b9bd[_0xd18e('0x21')],'to':_0xd18e('0x22')+_0x26b9bd['phone'],'from':_0xd18e('0x22')+_0x590b89[_0xd18e('0x1d')],'statusCallback':_0x590b89[_0xd18e('0x23')]+_0xd18e('0x24')+_0x26b9bd['id']+_0xd18e('0x25')+_0x590b89[_0xd18e('0x26')]})[_0xd18e('0x16')](function(_0x3c8fbf){if(_0x3c8fbf[_0xd18e('0x27')]){return _0x435994[_0xd18e('0x17')]({'messageId':_0x3c8fbf[_0xd18e('0x27')]});}})['catch'](function(_0x9c3dd5){logger[_0xd18e('0x19')](_0xd18e('0x28'),_0xd18e('0x29'),_0xd18e('0x1c'),util['inspect'](_0x9c3dd5,{'showHidden':![],'depth':null}));});}else{logger[_0xd18e('0x19')](_0xd18e('0x28'),'afterCreate',_0xd18e('0x1c'),_0xd18e('0x2a'));}break;case _0xd18e('0x2b'):var _0x27f94f=_0x590b89[_0xd18e('0x2c')];var _0x3bc549=_0x590b89[_0xd18e('0x1e')];var _0x32893e=_0x590b89[_0xd18e('0x2d')]+'/whatsapp/v1/'+_0x27f94f+_0xd18e('0x2e');var _0x16f64b={'to':[_0x26b9bd['phone']],'message':{'type':_0xd18e('0x2f'),'text':_0x26b9bd['body']}};var _0x1d740c={'method':_0xd18e('0x30'),'uri':_0x32893e,'headers':{'Authorization':_0xd18e('0x31')+_0x3bc549,'Content-Type':_0xd18e('0x32')},'body':_0x16f64b,'json':!![]};rp(_0x1d740c)[_0xd18e('0x16')](function(_0x46047b){if(_0x46047b['statuses'][0x0]['message_id']){return _0x435994[_0xd18e('0x17')]({'messageId':_0x46047b[_0xd18e('0x33')][0x0][_0xd18e('0x34')]});}})[_0xd18e('0x35')](function(_0xbabf34){logger[_0xd18e('0x36')](_0xd18e('0x37'),_0xbabf34);});break;}}})[_0xd18e('0x38')](function(){_0x2d4bf8();});}else{_0x2d4bf8();}}},'charset':_0xd18e('0x39'),'collate':'utf8mb4_unicode_ci'});};