Built motion from commit 21186556.|2.6.19
[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 _0x5b1d=['catch','error','WhatsappAccount','WhatsappAccountId','type','twilio','accountSid','authToken','phone','messages','create','whatsapp:','/api/whatsapp/messages/','/status?token=','then','sid','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','/whatsapp/v1/','/messages/','text','POST','application/json','statuses','message_id','err','WhatsappMessage,\x20%s','finally','utf8mb4','lodash','util','../../config/logger','api','moment','bluebird','request-promise','node-fetch','path','rimraf','exports','define','messageId','fti_whatsapp_messages','body','FULLTEXT','models','direction','toLowerCase','secret','isNil','UserId','findOne','WhatsappInteractionId','update'];(function(_0x4d442b,_0x2959e4){var _0x46c813=function(_0xfb8a0c){while(--_0xfb8a0c){_0x4d442b['push'](_0x4d442b['shift']());}};_0x46c813(++_0x2959e4);}(_0x5b1d,0xc3));var _0xd5b1=function(_0x59fefd,_0x50624f){_0x59fefd=_0x59fefd-0x0;var _0x36ac6f=_0x5b1d[_0x59fefd];return _0x36ac6f;};'use strict';var _=require(_0xd5b1('0x0'));var util=require(_0xd5b1('0x1'));var logger=require(_0xd5b1('0x2'))(_0xd5b1('0x3'));var moment=require(_0xd5b1('0x4'));var BPromise=require(_0xd5b1('0x5'));var rp=require(_0xd5b1('0x6'));var fetch=require(_0xd5b1('0x7'));var fs=require('fs');var path=require(_0xd5b1('0x8'));var rimraf=require(_0xd5b1('0x9'));var config=require('../../config/environment');var attributes=require('./whatsappMessage.attributes');module[_0xd5b1('0xa')]=function(_0x31f4b1,_0x176113){return _0x31f4b1[_0xd5b1('0xb')]('WhatsappMessage',attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0xd5b1('0xc'),'fields':[_0xd5b1('0xc')]},{'name':_0xd5b1('0xd'),'fields':[_0xd5b1('0xe')],'type':_0xd5b1('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x456a86,_0x311e46,_0x41f2d6){var _0x4128b6=_0x31f4b1[_0xd5b1('0x10')];var _0x43c550=_0x456a86['get']({'plain':!![]});if(_0x43c550[_0xd5b1('0x11')][_0xd5b1('0x12')]()==='in'||_0x43c550[_0xd5b1('0x11')][_0xd5b1('0x12')]()==='out'&&!_0x43c550[_0xd5b1('0x13')]&&!_[_0xd5b1('0x14')](_0x43c550[_0xd5b1('0x15')])){_0x4128b6['WhatsappInteraction'][_0xd5b1('0x16')]({'where':{'id':_0x43c550[_0xd5b1('0x17')]}})['then'](function(_0x5102ac){if(_0x5102ac){_0x5102ac[_0xd5b1('0x18')]({'lastMsgAt':_0x43c550['createdAt'],'lastMsgDirection':_0x43c550['direction']['toLowerCase']()});}})[_0xd5b1('0x19')](function(_0x3220ce){console[_0xd5b1('0x1a')](_0x3220ce);});}if(_0x43c550[_0xd5b1('0x11')]==='out'&&!_0x43c550[_0xd5b1('0x13')]){var _0x1bb928;_0x4128b6[_0xd5b1('0x1b')]['find']({'where':{'id':_0x43c550[_0xd5b1('0x1c')]},'raw':!![]})['then'](function(_0x3a5fab){_0x1bb928=_0x3a5fab;if(_0x1bb928&&_0x1bb928[_0xd5b1('0x1d')]){switch(_0x1bb928['type']){case _0xd5b1('0x1e'):var _0x228955=require('twilio');if(_0x1bb928[_0xd5b1('0x1f')]&&_0x1bb928[_0xd5b1('0x20')]&&_0x1bb928[_0xd5b1('0x21')]){var _0x327552=new _0x228955(_0x1bb928['accountSid'],_0x1bb928[_0xd5b1('0x20')]);_0x327552[_0xd5b1('0x22')][_0xd5b1('0x23')]({'body':_0x43c550['body'],'to':_0xd5b1('0x24')+_0x43c550['phone'],'from':_0xd5b1('0x24')+_0x1bb928['phone'],'statusCallback':_0x1bb928['remote']+_0xd5b1('0x25')+_0x43c550['id']+_0xd5b1('0x26')+_0x1bb928['token']})[_0xd5b1('0x27')](function(_0xc0f7d0){if(_0xc0f7d0[_0xd5b1('0x28')]){return _0x456a86[_0xd5b1('0x18')]({'messageId':_0xc0f7d0[_0xd5b1('0x28')]});}})[_0xd5b1('0x19')](function(_0x5d2cd3){logger['error'](_0xd5b1('0x29'),'afterCreate',_0xd5b1('0x1e'),util['inspect'](_0x5d2cd3,{'showHidden':![],'depth':null}));});}else{logger[_0xd5b1('0x1a')](_0xd5b1('0x29'),_0xd5b1('0x2a'),_0xd5b1('0x1e'),_0xd5b1('0x2b'));}break;case'sinch':var _0x12e2e9=_0x1bb928[_0xd5b1('0x1f')];var _0x908c4f=_0x1bb928[_0xd5b1('0x20')];var _0x41d87f=_0x1bb928['baseUrl']+_0xd5b1('0x2c')+_0x12e2e9+_0xd5b1('0x2d');var _0x51812e={'to':[_0x43c550[_0xd5b1('0x21')]],'message':{'type':_0xd5b1('0x2e'),'text':_0x43c550['body']}};var _0x1d9b15={'method':_0xd5b1('0x2f'),'uri':_0x41d87f,'headers':{'Authorization':'Bearer\x20'+_0x908c4f,'Content-Type':_0xd5b1('0x30')},'body':_0x51812e,'json':!![]};rp(_0x1d9b15)[_0xd5b1('0x27')](function(_0x2d0fb2){if(_0x2d0fb2[_0xd5b1('0x31')][0x0][_0xd5b1('0x32')]){return _0x456a86['update']({'messageId':_0x2d0fb2[_0xd5b1('0x31')][0x0][_0xd5b1('0x32')]});}})[_0xd5b1('0x19')](function(_0x1ed351){logger[_0xd5b1('0x33')](_0xd5b1('0x34'),_0x1ed351);});break;}}})[_0xd5b1('0x35')](function(){_0x41f2d6();});}else{_0x41f2d6();}}},'charset':_0xd5b1('0x36'),'collate':'utf8mb4_unicode_ci'});};