Built motion from commit 4ffc18b1.|2.6.31
[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 _0xe66d=['WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','twilio','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','baseUrl','/whatsapp/v1/','/messages/','text','POST','Bearer\x20','statuses','message_id','err','WhatsappMessage,\x20%s','utf8mb4_unicode_ci','lodash','util','api','moment','bluebird','request-promise','node-fetch','path','rimraf','../../config/environment','./whatsappMessage.attributes','define','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','get','direction','toLowerCase','out','secret','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','update','createdAt','catch','error','find','WhatsappAccountId','type','accountSid','authToken','phone','messages','create','whatsapp:','remote','/status?token=','token','sid'];(function(_0x4210cb,_0x18a936){var _0x1e9dc7=function(_0x4a4a58){while(--_0x4a4a58){_0x4210cb['push'](_0x4210cb['shift']());}};_0x1e9dc7(++_0x18a936);}(_0xe66d,0xfb));var _0xde66=function(_0x1a3d07,_0x105a71){_0x1a3d07=_0x1a3d07-0x0;var _0xd0058a=_0xe66d[_0x1a3d07];return _0xd0058a;};'use strict';var _=require(_0xde66('0x0'));var util=require(_0xde66('0x1'));var logger=require('../../config/logger')(_0xde66('0x2'));var moment=require(_0xde66('0x3'));var BPromise=require(_0xde66('0x4'));var rp=require(_0xde66('0x5'));var fetch=require(_0xde66('0x6'));var fs=require('fs');var path=require(_0xde66('0x7'));var rimraf=require(_0xde66('0x8'));var config=require(_0xde66('0x9'));var attributes=require(_0xde66('0xa'));module['exports']=function(_0xbf1165,_0x52fe46){return _0xbf1165[_0xde66('0xb')](_0xde66('0xc'),attributes,{'tableName':_0xde66('0xd'),'paranoid':![],'indexes':[{'name':_0xde66('0xe'),'fields':[_0xde66('0xe')]},{'name':_0xde66('0xf'),'fields':[_0xde66('0x10')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x520d5f,_0x26950d,_0xac25d7){var _0x9bc097=_0xbf1165['models'];var _0x4f23be=_0x520d5f[_0xde66('0x11')]({'plain':!![]});if(_0x4f23be[_0xde66('0x12')][_0xde66('0x13')]()==='in'||_0x4f23be[_0xde66('0x12')][_0xde66('0x13')]()===_0xde66('0x14')&&!_0x4f23be[_0xde66('0x15')]&&!_['isNil'](_0x4f23be[_0xde66('0x16')])){_0x9bc097[_0xde66('0x17')][_0xde66('0x18')]({'where':{'id':_0x4f23be[_0xde66('0x19')]}})[_0xde66('0x1a')](function(_0x279710){if(_0x279710){_0x279710[_0xde66('0x1b')]({'lastMsgAt':_0x4f23be[_0xde66('0x1c')],'lastMsgDirection':_0x4f23be[_0xde66('0x12')][_0xde66('0x13')]()});}})[_0xde66('0x1d')](function(_0x5cd200){console[_0xde66('0x1e')](_0x5cd200);});}if(_0x4f23be[_0xde66('0x12')]==='out'&&!_0x4f23be[_0xde66('0x15')]){var _0x3dc519;_0x9bc097['WhatsappAccount'][_0xde66('0x1f')]({'where':{'id':_0x4f23be[_0xde66('0x20')]},'raw':!![]})[_0xde66('0x1a')](function(_0xe40a31){_0x3dc519=_0xe40a31;if(_0x3dc519&&_0x3dc519[_0xde66('0x21')]){switch(_0x3dc519[_0xde66('0x21')]){case'twilio':var _0x207be7=require('twilio');if(_0x3dc519[_0xde66('0x22')]&&_0x3dc519[_0xde66('0x23')]&&_0x3dc519[_0xde66('0x24')]){var _0x5783ac=new _0x207be7(_0x3dc519['accountSid'],_0x3dc519[_0xde66('0x23')]);_0x5783ac[_0xde66('0x25')][_0xde66('0x26')]({'body':_0x4f23be[_0xde66('0x10')],'to':_0xde66('0x27')+_0x4f23be[_0xde66('0x24')],'from':_0xde66('0x27')+_0x3dc519['phone'],'statusCallback':_0x3dc519[_0xde66('0x28')]+'/api/whatsapp/messages/'+_0x4f23be['id']+_0xde66('0x29')+_0x3dc519[_0xde66('0x2a')]})['then'](function(_0x471eb2){if(_0x471eb2[_0xde66('0x2b')]){return _0x520d5f[_0xde66('0x1b')]({'messageId':_0x471eb2['sid']});}})[_0xde66('0x1d')](function(_0x85833){logger[_0xde66('0x1e')](_0xde66('0x2c'),_0xde66('0x2d'),_0xde66('0x2e'),util['inspect'](_0x85833,{'showHidden':![],'depth':null}));});}else{logger[_0xde66('0x1e')](_0xde66('0x2c'),_0xde66('0x2d'),_0xde66('0x2e'),_0xde66('0x2f'));}break;case'sinch':var _0x44c0b9=_0x3dc519[_0xde66('0x22')];var _0x78c153=_0x3dc519[_0xde66('0x23')];var _0xe16b69=_0x3dc519[_0xde66('0x30')]+_0xde66('0x31')+_0x44c0b9+_0xde66('0x32');var _0x4a0f4c={'to':[_0x4f23be[_0xde66('0x24')]],'message':{'type':_0xde66('0x33'),'text':_0x4f23be[_0xde66('0x10')]}};var _0xdbecc9={'method':_0xde66('0x34'),'uri':_0xe16b69,'headers':{'Authorization':_0xde66('0x35')+_0x78c153,'Content-Type':'application/json'},'body':_0x4a0f4c,'json':!![]};rp(_0xdbecc9)['then'](function(_0x1b105d){if(_0x1b105d[_0xde66('0x36')][0x0][_0xde66('0x37')]){return _0x520d5f[_0xde66('0x1b')]({'messageId':_0x1b105d['statuses'][0x0][_0xde66('0x37')]});}})[_0xde66('0x1d')](function(_0x326d5){logger[_0xde66('0x38')](_0xde66('0x39'),_0x326d5);});break;}}})['finally'](function(){_0xac25d7();});}else{_0xac25d7();}}},'charset':'utf8mb4','collate':_0xde66('0x3a')});};