Built motion from commit 91ed41ac.|2.5.44
[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 _0x65d3=['remote','/api/whatsapp/messages/','/status?token=','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','inspect','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','baseUrl','/whatsapp/v1/','text','Bearer\x20','application/json','statuses','message_id','WhatsappMessage,\x20%s','finally','utf8mb4_unicode_ci','util','../../config/logger','api','bluebird','node-fetch','rimraf','../../config/environment','./whatsappMessage.attributes','exports','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','FULLTEXT','models','direction','toLowerCase','secret','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','update','createdAt','catch','error','out','WhatsappAccount','find','WhatsappAccountId','type','twilio','accountSid','authToken','phone','messages','create','body','whatsapp:'];(function(_0x58dc25,_0x49b9d5){var _0x21b0a7=function(_0x38a186){while(--_0x38a186){_0x58dc25['push'](_0x58dc25['shift']());}};_0x21b0a7(++_0x49b9d5);}(_0x65d3,0x134));var _0x365d=function(_0x10d4a8,_0x18ea69){_0x10d4a8=_0x10d4a8-0x0;var _0x2291fa=_0x65d3[_0x10d4a8];return _0x2291fa;};'use strict';var _=require('lodash');var util=require(_0x365d('0x0'));var logger=require(_0x365d('0x1'))(_0x365d('0x2'));var moment=require('moment');var BPromise=require(_0x365d('0x3'));var rp=require('request-promise');var fetch=require(_0x365d('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x365d('0x5'));var config=require(_0x365d('0x6'));var attributes=require(_0x365d('0x7'));module[_0x365d('0x8')]=function(_0x2cafd5,_0x2afe6c){return _0x2cafd5['define'](_0x365d('0x9'),attributes,{'tableName':_0x365d('0xa'),'paranoid':![],'indexes':[{'name':_0x365d('0xb'),'fields':[_0x365d('0xb')]},{'name':_0x365d('0xc'),'fields':['body'],'type':_0x365d('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x59ee51,_0x2a9a62,_0x16e0e8){var _0xd0b9f7=_0x2cafd5[_0x365d('0xe')];var _0x4c4bd0=_0x59ee51['get']({'plain':!![]});if(_0x4c4bd0[_0x365d('0xf')][_0x365d('0x10')]()==='in'||_0x4c4bd0['direction'][_0x365d('0x10')]()==='out'&&!_0x4c4bd0[_0x365d('0x11')]&&!_['isNil'](_0x4c4bd0[_0x365d('0x12')])){_0xd0b9f7[_0x365d('0x13')][_0x365d('0x14')]({'where':{'id':_0x4c4bd0[_0x365d('0x15')]}})[_0x365d('0x16')](function(_0xacf0c4){if(_0xacf0c4){_0xacf0c4[_0x365d('0x17')]({'lastMsgAt':_0x4c4bd0[_0x365d('0x18')],'lastMsgDirection':_0x4c4bd0['direction'][_0x365d('0x10')]()});}})[_0x365d('0x19')](function(_0x12ffe1){console[_0x365d('0x1a')](_0x12ffe1);});}if(_0x4c4bd0[_0x365d('0xf')]===_0x365d('0x1b')&&!_0x4c4bd0[_0x365d('0x11')]){var _0x4b3d0f;_0xd0b9f7[_0x365d('0x1c')][_0x365d('0x1d')]({'where':{'id':_0x4c4bd0[_0x365d('0x1e')]},'raw':!![]})[_0x365d('0x16')](function(_0x443554){_0x4b3d0f=_0x443554;if(_0x4b3d0f&&_0x4b3d0f[_0x365d('0x1f')]){switch(_0x4b3d0f[_0x365d('0x1f')]){case _0x365d('0x20'):var _0x4e6fca=require(_0x365d('0x20'));if(_0x4b3d0f[_0x365d('0x21')]&&_0x4b3d0f[_0x365d('0x22')]&&_0x4b3d0f[_0x365d('0x23')]){var _0x3325c5=new _0x4e6fca(_0x4b3d0f[_0x365d('0x21')],_0x4b3d0f[_0x365d('0x22')]);_0x3325c5[_0x365d('0x24')][_0x365d('0x25')]({'body':_0x4c4bd0[_0x365d('0x26')],'to':_0x365d('0x27')+_0x4c4bd0['phone'],'from':'whatsapp:'+_0x4b3d0f['phone'],'statusCallback':_0x4b3d0f[_0x365d('0x28')]+_0x365d('0x29')+_0x4c4bd0['id']+_0x365d('0x2a')+_0x4b3d0f['token']})[_0x365d('0x16')](function(_0x42e71e){if(_0x42e71e[_0x365d('0x2b')]){return _0x59ee51['update']({'messageId':_0x42e71e[_0x365d('0x2b')]});}})[_0x365d('0x19')](function(_0xcbfcb3){logger[_0x365d('0x1a')](_0x365d('0x2c'),'afterCreate',_0x365d('0x20'),util[_0x365d('0x2d')](_0xcbfcb3,{'showHidden':![],'depth':null}));});}else{logger[_0x365d('0x1a')](_0x365d('0x2c'),_0x365d('0x2e'),_0x365d('0x20'),_0x365d('0x2f'));}break;case'sinch':var _0x5b8ffc=_0x4b3d0f[_0x365d('0x21')];var _0x3c8100=_0x4b3d0f[_0x365d('0x22')];var _0x363820=_0x4b3d0f[_0x365d('0x30')]+_0x365d('0x31')+_0x5b8ffc+'/messages/';var _0x2661a1={'to':[_0x4c4bd0['phone']],'message':{'type':_0x365d('0x32'),'text':_0x4c4bd0[_0x365d('0x26')]}};var _0x9c5cb0={'method':'POST','uri':_0x363820,'headers':{'Authorization':_0x365d('0x33')+_0x3c8100,'Content-Type':_0x365d('0x34')},'body':_0x2661a1,'json':!![]};rp(_0x9c5cb0)[_0x365d('0x16')](function(_0x2802b1){if(_0x2802b1[_0x365d('0x35')][0x0][_0x365d('0x36')]){return _0x59ee51[_0x365d('0x17')]({'messageId':_0x2802b1[_0x365d('0x35')][0x0][_0x365d('0x36')]});}})['catch'](function(_0x21861b){logger['err'](_0x365d('0x37'),_0x21861b);});break;}}})[_0x365d('0x38')](function(){_0x16e0e8();});}else{_0x16e0e8();}}},'charset':'utf8mb4','collate':_0x365d('0x39')});};