Built motion from commit (unavailable).|2.3.4
[motion2.git] / server / api / smsMessage / smsMessage.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 _0xadee=['clicksend','xCALLY\x20Motion','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','base64','data','queued_count','head','messages','message_id','deliveryReport','clickSend','plivo','senderString','authId','https://api.plivo.com/v1/Account/%s/Message/','message_uuid','infobip','baseUrl','/auth/1/session','application/json','IBSSO\x20','Missing\x20parameters:\x20base_url','csc','login','sender','keys','length','apiKey','createHash','md5','digest','hex','signature=','https://sms.csc.lv/external/get/send.php?','id_sms','clickatell','https://platform.clickatell.com/messages','UTF-8','apiMessageId','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','code','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','status','refid','finally','utf8mb4','util','../../config/logger','api','moment','bluebird','request-promise','./smsMessage.attributes','exports','define','sms_messages','messageId','models','get','direction','toLowerCase','secret','isNil','UserId','SmsInteraction','SmsInteractionId','createdAt','body','catch','out','SmsAccount','find','SmsAccountId','then','type','twilio','accountSid','authToken','phone','create','remote','/status?token=','token','sid','update','error','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','https://api.skebby.it/API/v1.0/REST/','username','smsMethod','login?username=','&password=','password','GET','split','sms','POST','user_key','session_key','inspect','Missing\x20parameters:\x20username,\x20password','https://smsapi.connectel.se/api/send/','requestid','read','connectel','Missing\x20parameters:\x20authToken'];(function(_0x5c8a0a,_0x284afe){var _0x4acb8c=function(_0x1d7a1a){while(--_0x1d7a1a){_0x5c8a0a['push'](_0x5c8a0a['shift']());}};_0x4acb8c(++_0x284afe);}(_0xadee,0x191));var _0xeade=function(_0xd7a5c0,_0x4da629){_0xd7a5c0=_0xd7a5c0-0x0;var _0x7ea7d=_0xadee[_0xd7a5c0];return _0x7ea7d;};'use strict';var _=require('lodash');var util=require(_0xeade('0x0'));var logger=require(_0xeade('0x1'))(_0xeade('0x2'));var moment=require(_0xeade('0x3'));var BPromise=require(_0xeade('0x4'));var rp=require(_0xeade('0x5'));var attributes=require(_0xeade('0x6'));module[_0xeade('0x7')]=function(_0x1919de,_0x517dcc){return _0x1919de[_0xeade('0x8')]('SmsMessage',attributes,{'tableName':_0xeade('0x9'),'paranoid':![],'indexes':[{'name':_0xeade('0xa'),'fields':['messageId']}],'timestamps':!![],'hooks':{'afterCreate':function(_0x59e32e,_0x416080,_0x4dec69){var _0x11cf6b=_0x1919de[_0xeade('0xb')];var _0x2c5b3b=_0x59e32e[_0xeade('0xc')]({'plain':!![]});if(_0x2c5b3b[_0xeade('0xd')][_0xeade('0xe')]()==='in'||_0x2c5b3b[_0xeade('0xd')][_0xeade('0xe')]()==='out'&&!_0x2c5b3b[_0xeade('0xf')]&&!_[_0xeade('0x10')](_0x2c5b3b[_0xeade('0x11')])){_0x11cf6b[_0xeade('0x12')]['findOne']({'where':{'id':_0x2c5b3b[_0xeade('0x13')]}})['then'](function(_0x2398a3){if(_0x2398a3){_0x2398a3['update']({'lastMsgAt':_0x2c5b3b[_0xeade('0x14')],'lastMsgDirection':_0x2c5b3b['direction'][_0xeade('0xe')](),'lastMsgBody':_0x2c5b3b[_0xeade('0x15')]});}})[_0xeade('0x16')](function(_0x15c3d0){console['error'](_0x15c3d0);});}if(_0x2c5b3b[_0xeade('0xd')]===_0xeade('0x17')&&!_0x2c5b3b[_0xeade('0xf')]){var _0x5087ce;_0x11cf6b[_0xeade('0x18')][_0xeade('0x19')]({'where':{'id':_0x2c5b3b[_0xeade('0x1a')]},'raw':!![]})[_0xeade('0x1b')](function(_0x1b4776){_0x5087ce=_0x1b4776;if(_0x5087ce&&_0x5087ce[_0xeade('0x1c')]){switch(_0x5087ce['type']){case _0xeade('0x1d'):var _0xe018ac=require(_0xeade('0x1d'));if(_0x5087ce[_0xeade('0x1e')]&&_0x5087ce[_0xeade('0x1f')]&&_0x5087ce[_0xeade('0x20')]){var _0x533929=new _0xe018ac(_0x5087ce[_0xeade('0x1e')],_0x5087ce[_0xeade('0x1f')]);_0x533929['messages'][_0xeade('0x21')]({'body':_0x2c5b3b['body'],'to':_0x2c5b3b[_0xeade('0x20')],'from':_0x5087ce[_0xeade('0x20')],'statusCallback':_0x5087ce[_0xeade('0x22')]+'/api/sms/messages/'+_0x2c5b3b['id']+_0xeade('0x23')+_0x5087ce[_0xeade('0x24')]})[_0xeade('0x1b')](function(_0x4a974d){if(_0x4a974d[_0xeade('0x25')]){return _0x59e32e[_0xeade('0x26')]({'messageId':_0x4a974d[_0xeade('0x25')]});}})[_0xeade('0x16')](function(_0x40a98b){logger[_0xeade('0x27')](_0xeade('0x28'),_0xeade('0x29'),'twilio',util['inspect'](_0x40a98b,{'showHidden':![],'depth':null}));});}else{logger[_0xeade('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xeade('0x29'),_0xeade('0x1d'),_0xeade('0x2a'));}break;case _0xeade('0x2b'):var _0x44ba4f=_0xeade('0x2c');if(_0x5087ce[_0xeade('0x2d')]&&_0x5087ce['password']){var _0x19e025={'recipient':[_0x2c5b3b[_0xeade('0x20')]],'message':_0x2c5b3b[_0xeade('0x15')],'message_type':_0x5087ce[_0xeade('0x2e')]};var _0x94a5fe={'url':_0x44ba4f+_0xeade('0x2f')+_0x5087ce[_0xeade('0x2d')]+_0xeade('0x30')+_0x5087ce[_0xeade('0x31')],'method':_0xeade('0x32')};rp(_0x94a5fe)['then'](function(_0x55a0cf){var _0x362f10=_0x55a0cf[_0xeade('0x33')](';');var _0x32ed9d={'user_key':_0x362f10[0x0],'session_key':_0x362f10[0x1]};_0x94a5fe={'url':_0x44ba4f+_0xeade('0x34'),'method':_0xeade('0x35'),'headers':{'user_key':_0x32ed9d[_0xeade('0x36')],'Session_key':_0x32ed9d[_0xeade('0x37')]},'json':!![],'body':_0x19e025};return rp(_0x94a5fe);})[_0xeade('0x1b')](function(_0x3373f5){if(_0x3373f5['total_sent']>=0x1){var _0x11d805={'messageId':_0x3373f5['internal_order_id']};if(_0x5087ce[_0xeade('0x2e')]!=='GP'||!_0x5087ce['deliveryReport']){_0x11d805['read']=!![];}return _0x59e32e[_0xeade('0x26')](_0x11d805);}else{return logger[_0xeade('0x27')](_0xeade('0x28'),_0xeade('0x29'),_0xeade('0x2b'),util[_0xeade('0x38')](_0x3373f5,{'showHidden':![],'depth':null}));}})[_0xeade('0x16')](function(_0x18f614){return logger[_0xeade('0x27')](_0xeade('0x28'),_0xeade('0x29'),_0xeade('0x2b'),util['inspect'](_0x18f614,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xeade('0x28'),'afterCreate','skebby',_0xeade('0x39'));}break;case'connectel':if(_0x5087ce['authToken']){var _0x482a54={'recipient':_0x2c5b3b[_0xeade('0x20')],'message':_0x2c5b3b['body'],'sender':_0x5087ce['senderString']||_0x5087ce[_0xeade('0x20')],'authorization':_0x5087ce['authToken']};var _0x416080={'method':_0xeade('0x35'),'uri':_0xeade('0x3a'),'body':_0x482a54,'json':!![]};rp(_0x416080)[_0xeade('0x1b')](function(_0x5ae066){var _0x9be5a6={'messageId':_0x5ae066[_0xeade('0x3b')]};if(!_0x5087ce['deliveryReport']){_0x9be5a6[_0xeade('0x3c')]=!![];}return _0x59e32e[_0xeade('0x26')](_0x9be5a6);})[_0xeade('0x16')](function(_0x264b50){logger[_0xeade('0x27')](_0xeade('0x28'),_0xeade('0x29'),_0xeade('0x3d'),util[_0xeade('0x38')](_0x264b50,{'showHidden':![],'depth':null}));});}else{logger[_0xeade('0x27')](_0xeade('0x28'),_0xeade('0x29'),_0xeade('0x3d'),_0xeade('0x3e'));}break;case _0xeade('0x3f'):if(_0x5087ce[_0xeade('0x2d')]&&_0x5087ce[_0xeade('0x31')]){var _0x482a54={'messages':[{'source':_0xeade('0x40'),'to':_0x2c5b3b[_0xeade('0x20')],'body':_0x2c5b3b[_0xeade('0x15')],'from':_0x5087ce['senderString']||_0x5087ce['phone']}]};var _0x5a89ab=util[_0xeade('0x41')](_0xeade('0x42'),_0x5087ce[_0xeade('0x2d')],_0x5087ce[_0xeade('0x31')]);var _0x416080={'method':_0xeade('0x35'),'uri':_0xeade('0x43'),'body':_0x482a54,'headers':{'Authorization':util[_0xeade('0x41')](_0xeade('0x44'),new Buffer(_0x5a89ab)[_0xeade('0x45')](_0xeade('0x46')))},'json':!![]};rp(_0x416080)[_0xeade('0x1b')](function(_0x3c6999){if(_0x3c6999['http_code']>=0xc8&&_0x3c6999['http_code']<=0xce){if(_0x3c6999[_0xeade('0x47')]&&_0x3c6999[_0xeade('0x47')][_0xeade('0x48')]>0x0){var _0x31eba5=_[_0xeade('0x49')](_0x3c6999[_0xeade('0x47')][_0xeade('0x4a')]);var _0xa8be36={'messageId':_0x31eba5[_0xeade('0x4b')]};if(!_0x5087ce[_0xeade('0x4c')]){_0xa8be36[_0xeade('0x3c')]=!![];}return _0x59e32e['update'](_0xa8be36);}else{logger[_0xeade('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xeade('0x29'),_0xeade('0x4d'),util[_0xeade('0x38')](_0x3c6999,{'showHidden':![],'depth':null}));}}else{logger[_0xeade('0x27')](_0xeade('0x28'),_0xeade('0x29'),_0xeade('0x4d'),util[_0xeade('0x38')](_0x3c6999,{'showHidden':![],'depth':null}));}})[_0xeade('0x16')](function(_0x1de4ca){logger[_0xeade('0x27')](_0xeade('0x28'),'afterCreate',_0xeade('0x4d'),util[_0xeade('0x38')](_0x1de4ca,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xeade('0x28'),'afterCreate',_0xeade('0x4d'),'Missing\x20parameters:\x20username,\x20password');}break;case _0xeade('0x4e'):if(_0x5087ce['authId']&&_0x5087ce['authToken']){var _0x482a54={'dst':_0x2c5b3b[_0xeade('0x20')],'text':_0x2c5b3b[_0xeade('0x15')],'src':_0x5087ce[_0xeade('0x4f')]||_0x5087ce[_0xeade('0x20')],'url':_0x5087ce[_0xeade('0x22')]+'/api/sms/messages/'+_0x2c5b3b['id']+_0xeade('0x23')+_0x5087ce[_0xeade('0x24')]};var _0x5a89ab=util[_0xeade('0x41')](_0xeade('0x42'),_0x5087ce[_0xeade('0x50')],_0x5087ce[_0xeade('0x1f')]);var _0x416080={'method':_0xeade('0x35'),'uri':util[_0xeade('0x41')](_0xeade('0x51'),_0x5087ce[_0xeade('0x50')]),'body':_0x482a54,'headers':{'Authorization':util['format'](_0xeade('0x44'),new Buffer(_0x5a89ab)[_0xeade('0x45')](_0xeade('0x46')))},'json':!![]};rp(_0x416080)[_0xeade('0x1b')](function(_0xa40511){var _0x3a7928={'messageId':_0xa40511[_0xeade('0x52')][0x0]};return _0x59e32e['update'](_0x3a7928);})['catch'](function(_0x406917){logger['error'](_0xeade('0x28'),_0xeade('0x29'),_0xeade('0x4e'),util[_0xeade('0x38')](_0x406917,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xeade('0x29'),_0xeade('0x4e'),'Missing\x20parameters:\x20authId,\x20authToken');}break;case _0xeade('0x53'):if(_0x5087ce[_0xeade('0x2d')]&&_0x5087ce[_0xeade('0x31')]){if(_0x5087ce[_0xeade('0x54')]){var _0xf408db={'method':_0xeade('0x35'),'uri':_0x5087ce[_0xeade('0x54')]+_0xeade('0x55'),'body':{'username':_0x5087ce['username'],'password':_0x5087ce[_0xeade('0x31')]},'json':!![]};return rp(_0xf408db)[_0xeade('0x1b')](function(_0x2b88ee){var _0x2d48f2={'method':_0xeade('0x35'),'uri':_0x5087ce[_0xeade('0x54')]+'/sms/2/text/advanced','body':{'messages':[{'from':_0x5087ce['phone'],'destinations':[{'to':_0x2c5b3b['phone']}],'text':_0x2c5b3b[_0xeade('0x15')],'notifyUrl':_0x5087ce[_0xeade('0x22')]+'/api/sms/messages/'+_0x2c5b3b['id']+_0xeade('0x23')+_0x5087ce[_0xeade('0x24')],'notifyContentType':_0xeade('0x56'),'callbackData':_0x5087ce['phone']+';'+_0x2c5b3b[_0xeade('0x15')]}]},'headers':{'Authorization':_0xeade('0x57')+_0x2b88ee['token']},'json':!![]};return rp(_0x2d48f2)[_0xeade('0x1b')](function(_0x48d1a5){if(_0x48d1a5['messages']){var _0x81b83b={'messageId':_0x48d1a5[_0xeade('0x4a')][0x0][_0xeade('0xa')]};if(!_0x5087ce['deliveryReport']){_0x81b83b[_0xeade('0x3c')]=!![];}return _0x59e32e[_0xeade('0x26')](_0x81b83b);}else{return logger[_0xeade('0x27')](_0xeade('0x28'),'afterCreate','infobip',util[_0xeade('0x38')](_0x48d1a5,{'showHidden':![],'depth':null}));}});})[_0xeade('0x16')](function(_0x53be36){return logger[_0xeade('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0xeade('0x53'),util['inspect'](_0x53be36,{'showHidden':![],'depth':null}));});}else{logger[_0xeade('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xeade('0x29'),_0xeade('0x53'),_0xeade('0x58'));}}else{logger[_0xeade('0x27')](_0xeade('0x28'),_0xeade('0x29'),_0xeade('0x53'),_0xeade('0x39'));}case _0xeade('0x59'):var _0x1eaa69=require('crypto');if(_0x5087ce['apiKey']){var _0x573826={};_0x573826[_0xeade('0x5a')]=_0x5087ce[_0xeade('0x2d')];_0x573826[_0xeade('0x20')]=_0x2c5b3b[_0xeade('0x20')];_0x573826[_0xeade('0x5b')]=_0x5087ce[_0xeade('0x20')];_0x573826['text']=_0x2c5b3b[_0xeade('0x15')];_0x573826['timestamp']=+new Date();var _0x393f7b='';var _0x5596f7='';var _0x5dbd55=Object[_0xeade('0x5c')](_0x573826);_0x5dbd55['sort']();for(var _0x455ffd=0x0;_0x455ffd<_0x5dbd55[_0xeade('0x5d')];_0x455ffd++){if(_0x393f7b!=''){_0x393f7b+='&';}_0x393f7b+=_0x5dbd55[_0x455ffd]+'='+encodeURIComponent(_0x573826[_0x5dbd55[_0x455ffd]]);_0x5596f7+=_0x573826[_0x5dbd55[_0x455ffd]];}_0x5596f7+=_0x5087ce[_0xeade('0x5e')];_0x5596f7=_0x1eaa69[_0xeade('0x5f')](_0xeade('0x60'))[_0xeade('0x26')](_0x5596f7)[_0xeade('0x61')](_0xeade('0x62'));if(_0x393f7b!==''){_0x393f7b+='&';}_0x393f7b+=_0xeade('0x63')+_0x5596f7;var _0x94a5fe={'method':_0xeade('0x32'),'uri':_0xeade('0x64')+_0x393f7b,'json':!![]};return rp(_0x94a5fe)[_0xeade('0x1b')](function(_0x1a52ff){var _0x305aa7=Object[_0xeade('0x5c')](_0x1a52ff);if(_0x1a52ff[_0x305aa7[0x0]]['error']&&parseInt(_0x1a52ff[_0x305aa7[0x0]][_0xeade('0x27')])===0x0){var _0x6ae453={'messageId':_0x1a52ff[_0x305aa7[0x0]][_0xeade('0x65')]};if(!_0x5087ce[_0xeade('0x4c')]){_0x6ae453['read']=!![];}return _0x59e32e[_0xeade('0x26')](_0x6ae453);}else{return logger[_0xeade('0x27')](_0xeade('0x28'),_0xeade('0x29'),'csc',util[_0xeade('0x38')](_0x1a52ff[_0xeade('0x27')],{'showHidden':![],'depth':null}));}})[_0xeade('0x16')](function(_0x2934c4){return logger['error'](_0xeade('0x28'),_0xeade('0x29'),'csc',util[_0xeade('0x38')](_0x2934c4,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xeade('0x28'),_0xeade('0x29'),_0xeade('0x59'),'Missing\x20parameters:\x20apiKey');}case _0xeade('0x66'):if(_0x5087ce['apiKey']){var _0x5a6b3f={'method':'POST','uri':_0xeade('0x67'),'headers':{'Authorization':_0x5087ce[_0xeade('0x5e')]},'body':{'content':_0x2c5b3b[_0xeade('0x15')],'to':[_0x2c5b3b['phone']],'from':_0x5087ce[_0xeade('0x20')],'binary':![],'clientMessageId':'uuid','charset':_0xeade('0x68')},'json':!![]};rp(_0x5a6b3f)[_0xeade('0x1b')](function(_0xa0a680){if(!_0xa0a680[_0xeade('0x27')]){var _0x522f88={'messageId':_0xa0a680[_0xeade('0x4a')][0x0][_0xeade('0x69')]};if(!_0x5087ce[_0xeade('0x4c')]){_0x522f88[_0xeade('0x3c')]=!![];}return _0x59e32e[_0xeade('0x26')](_0x522f88);}else{return logger[_0xeade('0x27')](_0xeade('0x28'),'afterCreate',_0xeade('0x66'),util['inspect'](_0xa0a680[_0xeade('0x27')],{'showHidden':![],'depth':null}));}})[_0xeade('0x16')](function(_0x325c29){return logger[_0xeade('0x27')](_0xeade('0x28'),'afterCreate',_0xeade('0x66'),util['inspect'](_0x325c29,{'showHidden':![],'depth':null}));});}else{logger[_0xeade('0x27')](_0xeade('0x28'),_0xeade('0x29'),_0xeade('0x66'),'Missing\x20parameters:\x20apiKey');}break;case _0xeade('0x6a'):if(_0x5087ce[_0xeade('0x5e')]){var _0x184e11={};var _0x94a5fe={'method':'POST','uri':_0xeade('0x6b'),'headers':{'Authorization':_0xeade('0x6c')+_0x5087ce[_0xeade('0x5e')],'Content-Type':_0xeade('0x56')},'body':{'from':_0x5087ce[_0xeade('0x20')],'to':_0x2c5b3b[_0xeade('0x20')],'text':_0x2c5b3b[_0xeade('0x15')]},'json':!![]};return rp(_0x94a5fe)['then'](function(_0x480b65){if(_0x480b65[_0xeade('0x6d')]==0xca){_0x184e11[_0xeade('0x6e')]=_0x480b65;var _0x3edc14={'method':_0xeade('0x35'),'uri':_0xeade('0x6f'),'headers':{'Authorization':_0xeade('0x6c')+_0x5087ce[_0xeade('0x5e')],'Content-Type':'application/json'},'body':{'refid':_0x184e11['message']['refid']},'json':!![]};return rp(_0x3edc14)[_0xeade('0x1b')](function(_0x39ee56){_0x184e11[_0xeade('0x70')]=_0x39ee56;var _0x841077={'messageId':_0x184e11[_0xeade('0x6e')][_0xeade('0x71')],'read':!![]};return _0x59e32e[_0xeade('0x26')](_0x841077);});}else{return logger[_0xeade('0x27')](_0xeade('0x28'),_0xeade('0x29'),_0xeade('0x6a'),util[_0xeade('0x38')](_0x480b65,{'showHidden':![],'depth':null}));}})[_0xeade('0x16')](function(_0x4e562a){return logger[_0xeade('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0xeade('0x6a'),util[_0xeade('0x38')](_0x4e562a,{'showHidden':![],'depth':null}));});}else{return logger['error'](_0xeade('0x28'),'afterCreate',_0xeade('0x6a'),'Token\x20not\x20received');}break;}}})[_0xeade('0x72')](function(){_0x4dec69();});}else{_0x4dec69();}}},'charset':_0xeade('0x73'),'collate':'utf8mb4_unicode_ci'});};