Built motion from commit e6806ed6.|2.6.0
[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 _0xd981=['utf8mb4','utf8mb4_unicode_ci','lodash','api','moment','bluebird','request-promise','rimraf','../../config/environment','exports','define','WhatsappMessage','messageId','fti_whatsapp_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId','WhatsappInteraction','findOne','WhatsappInteractionId','then','update','createdAt','catch','error','WhatsappAccount','find','WhatsappAccountId','type','twilio','accountSid','authToken','messages','whatsapp:','phone','remote','/api/whatsapp/messages/','/status?token=','token','sid','inspect','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','baseUrl','/messages/','text','Bearer\x20','application/json','message_id','statuses','err','finally'];(function(_0x23d2a0,_0x516174){var _0x409e80=function(_0x432940){while(--_0x432940){_0x23d2a0['push'](_0x23d2a0['shift']());}};_0x409e80(++_0x516174);}(_0xd981,0x1ad));var _0x1d98=function(_0x494275,_0x4da5b4){_0x494275=_0x494275-0x0;var _0x2047d8=_0xd981[_0x494275];return _0x2047d8;};'use strict';var _=require(_0x1d98('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x1d98('0x1'));var moment=require(_0x1d98('0x2'));var BPromise=require(_0x1d98('0x3'));var rp=require(_0x1d98('0x4'));var fetch=require('node-fetch');var fs=require('fs');var path=require('path');var rimraf=require(_0x1d98('0x5'));var config=require(_0x1d98('0x6'));var attributes=require('./whatsappMessage.attributes');module[_0x1d98('0x7')]=function(_0x5870d5,_0x24a2f4){return _0x5870d5[_0x1d98('0x8')](_0x1d98('0x9'),attributes,{'tableName':'whatsapp_messages','paranoid':![],'indexes':[{'name':_0x1d98('0xa'),'fields':[_0x1d98('0xa')]},{'name':_0x1d98('0xb'),'fields':[_0x1d98('0xc')],'type':_0x1d98('0xd')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x330a65,_0x1fa334,_0x2a668b){var _0x31be76=_0x5870d5[_0x1d98('0xe')];var _0xf4d32e=_0x330a65[_0x1d98('0xf')]({'plain':!![]});if(_0xf4d32e[_0x1d98('0x10')][_0x1d98('0x11')]()==='in'||_0xf4d32e[_0x1d98('0x10')]['toLowerCase']()===_0x1d98('0x12')&&!_0xf4d32e[_0x1d98('0x13')]&&!_[_0x1d98('0x14')](_0xf4d32e[_0x1d98('0x15')])){_0x31be76[_0x1d98('0x16')][_0x1d98('0x17')]({'where':{'id':_0xf4d32e[_0x1d98('0x18')]}})[_0x1d98('0x19')](function(_0x521b57){if(_0x521b57){_0x521b57[_0x1d98('0x1a')]({'lastMsgAt':_0xf4d32e[_0x1d98('0x1b')],'lastMsgDirection':_0xf4d32e[_0x1d98('0x10')][_0x1d98('0x11')]()});}})[_0x1d98('0x1c')](function(_0xbf71b){console[_0x1d98('0x1d')](_0xbf71b);});}if(_0xf4d32e[_0x1d98('0x10')]==='out'&&!_0xf4d32e[_0x1d98('0x13')]){var _0x31e077;_0x31be76[_0x1d98('0x1e')][_0x1d98('0x1f')]({'where':{'id':_0xf4d32e[_0x1d98('0x20')]},'raw':!![]})['then'](function(_0x1464dc){_0x31e077=_0x1464dc;if(_0x31e077&&_0x31e077[_0x1d98('0x21')]){switch(_0x31e077[_0x1d98('0x21')]){case _0x1d98('0x22'):var _0xbec729=require('twilio');if(_0x31e077[_0x1d98('0x23')]&&_0x31e077['authToken']&&_0x31e077['phone']){var _0x1a0262=new _0xbec729(_0x31e077['accountSid'],_0x31e077[_0x1d98('0x24')]);_0x1a0262[_0x1d98('0x25')]['create']({'body':_0xf4d32e['body'],'to':_0x1d98('0x26')+_0xf4d32e[_0x1d98('0x27')],'from':'whatsapp:'+_0x31e077[_0x1d98('0x27')],'statusCallback':_0x31e077[_0x1d98('0x28')]+_0x1d98('0x29')+_0xf4d32e['id']+_0x1d98('0x2a')+_0x31e077[_0x1d98('0x2b')]})[_0x1d98('0x19')](function(_0xe18e02){if(_0xe18e02[_0x1d98('0x2c')]){return _0x330a65[_0x1d98('0x1a')]({'messageId':_0xe18e02[_0x1d98('0x2c')]});}})[_0x1d98('0x1c')](function(_0x504fcb){logger['error']('WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x1d98('0x22'),util[_0x1d98('0x2d')](_0x504fcb,{'showHidden':![],'depth':null}));});}else{logger[_0x1d98('0x1d')](_0x1d98('0x2e'),_0x1d98('0x2f'),'twilio',_0x1d98('0x30'));}break;case _0x1d98('0x31'):var _0x3365d5=_0x31e077[_0x1d98('0x23')];var _0xcaa5c5=_0x31e077[_0x1d98('0x24')];var _0x34a1a1=_0x31e077[_0x1d98('0x32')]+'/whatsapp/v1/'+_0x3365d5+_0x1d98('0x33');var _0x500ff4={'to':[_0xf4d32e[_0x1d98('0x27')]],'message':{'type':_0x1d98('0x34'),'text':_0xf4d32e['body']}};var _0x16f35b={'method':'POST','uri':_0x34a1a1,'headers':{'Authorization':_0x1d98('0x35')+_0xcaa5c5,'Content-Type':_0x1d98('0x36')},'body':_0x500ff4,'json':!![]};rp(_0x16f35b)[_0x1d98('0x19')](function(_0x22834c){if(_0x22834c['statuses'][0x0][_0x1d98('0x37')]){return _0x330a65[_0x1d98('0x1a')]({'messageId':_0x22834c[_0x1d98('0x38')][0x0]['message_id']});}})[_0x1d98('0x1c')](function(_0x1b6f52){logger[_0x1d98('0x39')]('WhatsappMessage,\x20%s',_0x1b6f52);});break;}}})[_0x1d98('0x3a')](function(){_0x2a668b();});}else{_0x2a668b();}}},'charset':_0x1d98('0x3b'),'collate':_0x1d98('0x3c')});};