2899037be37078ddcc2d6bd1f237719866aa9729
[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 _0xa2d7=['WhatsappInteraction','findOne','WhatsappInteractionId','update','createdAt','catch','WhatsappAccount','find','type','twilio','accountSid','authToken','phone','messages','body','whatsapp:','remote','token','then','sid','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','baseUrl','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','statuses','message_id','err','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','bluebird','request-promise','node-fetch','path','../../config/environment','./whatsappMessage.attributes','exports','define','WhatsappMessage','whatsapp_messages','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId'];(function(_0x29c765,_0x1c81e3){var _0x15bb82=function(_0x12f236){while(--_0x12f236){_0x29c765['push'](_0x29c765['shift']());}};_0x15bb82(++_0x1c81e3);}(_0xa2d7,0x1ba));var _0x7a2d=function(_0x3f5b97,_0x5e6fa4){_0x3f5b97=_0x3f5b97-0x0;var _0x21bef0=_0xa2d7[_0x3f5b97];return _0x21bef0;};'use strict';var _=require(_0x7a2d('0x0'));var util=require(_0x7a2d('0x1'));var logger=require(_0x7a2d('0x2'))('api');var moment=require('moment');var BPromise=require(_0x7a2d('0x3'));var rp=require(_0x7a2d('0x4'));var fetch=require(_0x7a2d('0x5'));var fs=require('fs');var path=require(_0x7a2d('0x6'));var rimraf=require('rimraf');var config=require(_0x7a2d('0x7'));var attributes=require(_0x7a2d('0x8'));module[_0x7a2d('0x9')]=function(_0x114a51,_0x5c5c77){return _0x114a51[_0x7a2d('0xa')](_0x7a2d('0xb'),attributes,{'tableName':_0x7a2d('0xc'),'paranoid':![],'indexes':[{'name':'messageId','fields':['messageId']},{'name':'fti_whatsapp_messages','fields':['body'],'type':_0x7a2d('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x15e7fa,_0x110919,_0x1b407e){var _0x22e873=_0x114a51[_0x7a2d('0xe')];var _0x3ae771=_0x15e7fa[_0x7a2d('0xf')]({'plain':!![]});if(_0x3ae771[_0x7a2d('0x10')][_0x7a2d('0x11')]()==='in'||_0x3ae771['direction'][_0x7a2d('0x11')]()===_0x7a2d('0x12')&&!_0x3ae771[_0x7a2d('0x13')]&&!_[_0x7a2d('0x14')](_0x3ae771[_0x7a2d('0x15')])){_0x22e873[_0x7a2d('0x16')][_0x7a2d('0x17')]({'where':{'id':_0x3ae771[_0x7a2d('0x18')]}})['then'](function(_0x567605){if(_0x567605){_0x567605[_0x7a2d('0x19')]({'lastMsgAt':_0x3ae771[_0x7a2d('0x1a')],'lastMsgDirection':_0x3ae771[_0x7a2d('0x10')][_0x7a2d('0x11')]()});}})[_0x7a2d('0x1b')](function(_0x185ac6){console['error'](_0x185ac6);});}if(_0x3ae771[_0x7a2d('0x10')]===_0x7a2d('0x12')&&!_0x3ae771[_0x7a2d('0x13')]){var _0x30b8e6;_0x22e873[_0x7a2d('0x1c')][_0x7a2d('0x1d')]({'where':{'id':_0x3ae771['WhatsappAccountId']},'raw':!![]})['then'](function(_0x13b087){_0x30b8e6=_0x13b087;if(_0x30b8e6&&_0x30b8e6[_0x7a2d('0x1e')]){switch(_0x30b8e6[_0x7a2d('0x1e')]){case _0x7a2d('0x1f'):var _0x117afb=require(_0x7a2d('0x1f'));if(_0x30b8e6[_0x7a2d('0x20')]&&_0x30b8e6[_0x7a2d('0x21')]&&_0x30b8e6[_0x7a2d('0x22')]){var _0x140650=new _0x117afb(_0x30b8e6[_0x7a2d('0x20')],_0x30b8e6[_0x7a2d('0x21')]);_0x140650[_0x7a2d('0x23')]['create']({'body':_0x3ae771[_0x7a2d('0x24')],'to':'whatsapp:'+_0x3ae771[_0x7a2d('0x22')],'from':_0x7a2d('0x25')+_0x30b8e6['phone'],'statusCallback':_0x30b8e6[_0x7a2d('0x26')]+'/api/whatsapp/messages/'+_0x3ae771['id']+'/status?token='+_0x30b8e6[_0x7a2d('0x27')]})[_0x7a2d('0x28')](function(_0xf8e8f4){if(_0xf8e8f4[_0x7a2d('0x29')]){return _0x15e7fa[_0x7a2d('0x19')]({'messageId':_0xf8e8f4[_0x7a2d('0x29')]});}})[_0x7a2d('0x1b')](function(_0x37796e){logger[_0x7a2d('0x2a')](_0x7a2d('0x2b'),_0x7a2d('0x2c'),_0x7a2d('0x1f'),util[_0x7a2d('0x2d')](_0x37796e,{'showHidden':![],'depth':null}));});}else{logger[_0x7a2d('0x2a')](_0x7a2d('0x2b'),_0x7a2d('0x2c'),_0x7a2d('0x1f'),_0x7a2d('0x2e'));}break;case'sinch':var _0x550681=_0x30b8e6[_0x7a2d('0x20')];var _0x19bc60=_0x30b8e6[_0x7a2d('0x21')];var _0x3a651e=_0x30b8e6[_0x7a2d('0x2f')]+_0x7a2d('0x30')+_0x550681+_0x7a2d('0x31');var _0x55ba81={'to':[_0x3ae771['phone']],'message':{'type':_0x7a2d('0x32'),'text':_0x3ae771[_0x7a2d('0x24')]}};var _0x458eb7={'method':_0x7a2d('0x33'),'uri':_0x3a651e,'headers':{'Authorization':_0x7a2d('0x34')+_0x19bc60,'Content-Type':'application/json'},'body':_0x55ba81,'json':!![]};rp(_0x458eb7)[_0x7a2d('0x28')](function(_0x2ea4ee){if(_0x2ea4ee[_0x7a2d('0x35')][0x0]['message_id']){return _0x15e7fa[_0x7a2d('0x19')]({'messageId':_0x2ea4ee[_0x7a2d('0x35')][0x0][_0x7a2d('0x36')]});}})['catch'](function(_0x1d81b0){logger[_0x7a2d('0x37')]('WhatsappMessage,\x20%s',_0x1d81b0);});break;}}})['finally'](function(){_0x1b407e();});}else{_0x1b407e();}}},'charset':_0x7a2d('0x38'),'collate':_0x7a2d('0x39')});};