Built motion from commit 37e1ed56.|2.6.29
[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 _0xd6a2=['baseUrl','/messages/','text','POST','Bearer\x20','application/json','message_id','statuses','err','WhatsappMessage,\x20%s','finally','utf8mb4','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','exports','define','WhatsappMessage','whatsapp_messages','messageId','body','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId','findOne','update','createdAt','WhatsappAccount','find','WhatsappAccountId','then','type','twilio','accountSid','authToken','phone','messages','create','whatsapp:','token','sid','catch','error','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch'];(function(_0x970806,_0x48b3d2){var _0x341d3c=function(_0x2ae5de){while(--_0x2ae5de){_0x970806['push'](_0x970806['shift']());}};_0x341d3c(++_0x48b3d2);}(_0xd6a2,0x84));var _0x2d6a=function(_0x14f73d,_0x2937c9){_0x14f73d=_0x14f73d-0x0;var _0x2fe320=_0xd6a2[_0x14f73d];return _0x2fe320;};'use strict';var _=require(_0x2d6a('0x0'));var util=require(_0x2d6a('0x1'));var logger=require(_0x2d6a('0x2'))(_0x2d6a('0x3'));var moment=require(_0x2d6a('0x4'));var BPromise=require(_0x2d6a('0x5'));var rp=require(_0x2d6a('0x6'));var fetch=require('node-fetch');var fs=require('fs');var path=require(_0x2d6a('0x7'));var rimraf=require(_0x2d6a('0x8'));var config=require('../../config/environment');var attributes=require('./whatsappMessage.attributes');module[_0x2d6a('0x9')]=function(_0x3ac0e7,_0x3b7c68){return _0x3ac0e7[_0x2d6a('0xa')](_0x2d6a('0xb'),attributes,{'tableName':_0x2d6a('0xc'),'paranoid':![],'indexes':[{'name':_0x2d6a('0xd'),'fields':[_0x2d6a('0xd')]},{'name':'fti_whatsapp_messages','fields':[_0x2d6a('0xe')],'type':_0x2d6a('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x25f7ed,_0x234609,_0x180479){var _0x3bf901=_0x3ac0e7[_0x2d6a('0x10')];var _0xe11821=_0x25f7ed[_0x2d6a('0x11')]({'plain':!![]});if(_0xe11821[_0x2d6a('0x12')]['toLowerCase']()==='in'||_0xe11821[_0x2d6a('0x12')][_0x2d6a('0x13')]()===_0x2d6a('0x14')&&!_0xe11821[_0x2d6a('0x15')]&&!_[_0x2d6a('0x16')](_0xe11821[_0x2d6a('0x17')])){_0x3bf901['WhatsappInteraction'][_0x2d6a('0x18')]({'where':{'id':_0xe11821['WhatsappInteractionId']}})['then'](function(_0x27c5d8){if(_0x27c5d8){_0x27c5d8[_0x2d6a('0x19')]({'lastMsgAt':_0xe11821[_0x2d6a('0x1a')],'lastMsgDirection':_0xe11821['direction']['toLowerCase']()});}})['catch'](function(_0x9e371d){console['error'](_0x9e371d);});}if(_0xe11821['direction']==='out'&&!_0xe11821[_0x2d6a('0x15')]){var _0x206d8f;_0x3bf901[_0x2d6a('0x1b')][_0x2d6a('0x1c')]({'where':{'id':_0xe11821[_0x2d6a('0x1d')]},'raw':!![]})[_0x2d6a('0x1e')](function(_0x503669){_0x206d8f=_0x503669;if(_0x206d8f&&_0x206d8f[_0x2d6a('0x1f')]){switch(_0x206d8f['type']){case _0x2d6a('0x20'):var _0x56af4d=require(_0x2d6a('0x20'));if(_0x206d8f[_0x2d6a('0x21')]&&_0x206d8f[_0x2d6a('0x22')]&&_0x206d8f[_0x2d6a('0x23')]){var _0x33b6aa=new _0x56af4d(_0x206d8f[_0x2d6a('0x21')],_0x206d8f['authToken']);_0x33b6aa[_0x2d6a('0x24')][_0x2d6a('0x25')]({'body':_0xe11821[_0x2d6a('0xe')],'to':_0x2d6a('0x26')+_0xe11821[_0x2d6a('0x23')],'from':_0x2d6a('0x26')+_0x206d8f['phone'],'statusCallback':_0x206d8f['remote']+'/api/whatsapp/messages/'+_0xe11821['id']+'/status?token='+_0x206d8f[_0x2d6a('0x27')]})['then'](function(_0x22095){if(_0x22095[_0x2d6a('0x28')]){return _0x25f7ed[_0x2d6a('0x19')]({'messageId':_0x22095[_0x2d6a('0x28')]});}})[_0x2d6a('0x29')](function(_0x49fb06){logger[_0x2d6a('0x2a')](_0x2d6a('0x2b'),_0x2d6a('0x2c'),_0x2d6a('0x20'),util[_0x2d6a('0x2d')](_0x49fb06,{'showHidden':![],'depth':null}));});}else{logger[_0x2d6a('0x2a')](_0x2d6a('0x2b'),'afterCreate','twilio',_0x2d6a('0x2e'));}break;case _0x2d6a('0x2f'):var _0x5e7ef4=_0x206d8f[_0x2d6a('0x21')];var _0x2a539c=_0x206d8f[_0x2d6a('0x22')];var _0x296399=_0x206d8f[_0x2d6a('0x30')]+'/whatsapp/v1/'+_0x5e7ef4+_0x2d6a('0x31');var _0x1cb23a={'to':[_0xe11821[_0x2d6a('0x23')]],'message':{'type':_0x2d6a('0x32'),'text':_0xe11821['body']}};var _0x32993a={'method':_0x2d6a('0x33'),'uri':_0x296399,'headers':{'Authorization':_0x2d6a('0x34')+_0x2a539c,'Content-Type':_0x2d6a('0x35')},'body':_0x1cb23a,'json':!![]};rp(_0x32993a)[_0x2d6a('0x1e')](function(_0x1f08ae){if(_0x1f08ae['statuses'][0x0][_0x2d6a('0x36')]){return _0x25f7ed[_0x2d6a('0x19')]({'messageId':_0x1f08ae[_0x2d6a('0x37')][0x0]['message_id']});}})[_0x2d6a('0x29')](function(_0x35b96d){logger[_0x2d6a('0x38')](_0x2d6a('0x39'),_0x35b96d);});break;}}})[_0x2d6a('0x3a')](function(){_0x180479();});}else{_0x180479();}}},'charset':_0x2d6a('0x3b'),'collate':'utf8mb4_unicode_ci'});};