Built motion from commit (unavailable).|2.5.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 _0x1733=['user_key','session_key','total_sent','internal_order_id','deliveryReport','read','update','Missing\x20parameters:\x20username,\x20password','connectel','senderString','POST','requestid','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','base64','http_code','data','queued_count','head','message_id','clickSend','authId','https://api.plivo.com/v1/Account/%s/Message/','message_uuid','plivo','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/sms/2/text/advanced','IBSSO\x20','csc','login','apiKey','createHash','md5','digest','hex','signature=','GET','keys','clickatell','https://platform.clickatell.com/messages','uuid','UTF-8','apiMessageId','Missing\x20parameters:\x20apiKey','https://api.intelepeer.com/_rest/v4/app/sms/send','application/json','code','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','Bearer\x20','refid','status','intelepeer','Token\x20not\x20received','finally','utf8mb4','utf8mb4_unicode_ci','lodash','moment','request-promise','path','../../config/environment','./smsMessage.attributes','exports','define','SmsMessage','messageId','FULLTEXT','models','get','direction','toLowerCase','secret','isNil','SmsInteraction','findOne','SmsInteractionId','then','createdAt','out','SmsAccount','find','type','twilio','accountSid','authToken','phone','messages','create','body','remote','/api/sms/messages/','/status?token=','token','sid','catch','error','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','https://api.skebby.it/API/v1.0/REST/','username','password','smsMethod','sender','login?username=','split','sms'];(function(_0x480c91,_0x2730b7){var _0x4afa8e=function(_0x54fbc9){while(--_0x54fbc9){_0x480c91['push'](_0x480c91['shift']());}};_0x4afa8e(++_0x2730b7);}(_0x1733,0x1a3));var _0x3173=function(_0x3e04c7,_0x28dea4){_0x3e04c7=_0x3e04c7-0x0;var _0xa49b59=_0x1733[_0x3e04c7];return _0xa49b59;};'use strict';var _=require(_0x3173('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x3173('0x1'));var BPromise=require('bluebird');var rp=require(_0x3173('0x2'));var fs=require('fs');var path=require(_0x3173('0x3'));var rimraf=require('rimraf');var config=require(_0x3173('0x4'));var attributes=require(_0x3173('0x5'));module[_0x3173('0x6')]=function(_0x123008,_0x4bf6e){return _0x123008[_0x3173('0x7')](_0x3173('0x8'),attributes,{'tableName':'sms_messages','paranoid':![],'indexes':[{'name':_0x3173('0x9'),'fields':['messageId']},{'name':'fti_sms_messages','fields':['body'],'type':_0x3173('0xa')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x531c05,_0x45089e,_0xdd32ba){var _0x2e347c=_0x123008[_0x3173('0xb')];var _0x4e89ef=_0x531c05[_0x3173('0xc')]({'plain':!![]});if(_0x4e89ef[_0x3173('0xd')][_0x3173('0xe')]()==='in'||_0x4e89ef[_0x3173('0xd')]['toLowerCase']()==='out'&&!_0x4e89ef[_0x3173('0xf')]&&!_[_0x3173('0x10')](_0x4e89ef['UserId'])){_0x2e347c[_0x3173('0x11')][_0x3173('0x12')]({'where':{'id':_0x4e89ef[_0x3173('0x13')]}})[_0x3173('0x14')](function(_0x35b65e){if(_0x35b65e){_0x35b65e['update']({'lastMsgAt':_0x4e89ef[_0x3173('0x15')],'lastMsgDirection':_0x4e89ef[_0x3173('0xd')][_0x3173('0xe')]()});}})['catch'](function(_0x298f60){console['error'](_0x298f60);});}if(_0x4e89ef[_0x3173('0xd')]===_0x3173('0x16')&&!_0x4e89ef[_0x3173('0xf')]){var _0x26fdd3;_0x2e347c[_0x3173('0x17')][_0x3173('0x18')]({'where':{'id':_0x4e89ef['SmsAccountId']},'raw':!![]})[_0x3173('0x14')](function(_0x11723b){_0x26fdd3=_0x11723b;if(_0x26fdd3&&_0x26fdd3[_0x3173('0x19')]){switch(_0x26fdd3[_0x3173('0x19')]){case _0x3173('0x1a'):var _0x5bd8d1=require(_0x3173('0x1a'));if(_0x26fdd3[_0x3173('0x1b')]&&_0x26fdd3[_0x3173('0x1c')]&&_0x26fdd3[_0x3173('0x1d')]){var _0x585e02=new _0x5bd8d1(_0x26fdd3[_0x3173('0x1b')],_0x26fdd3['authToken']);_0x585e02[_0x3173('0x1e')][_0x3173('0x1f')]({'body':_0x4e89ef[_0x3173('0x20')],'to':_0x4e89ef[_0x3173('0x1d')],'from':_0x26fdd3[_0x3173('0x1d')],'statusCallback':_0x26fdd3[_0x3173('0x21')]+_0x3173('0x22')+_0x4e89ef['id']+_0x3173('0x23')+_0x26fdd3[_0x3173('0x24')]})[_0x3173('0x14')](function(_0x220e6b){if(_0x220e6b['sid']){return _0x531c05['update']({'messageId':_0x220e6b[_0x3173('0x25')]});}})[_0x3173('0x26')](function(_0x457cb6){logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x1a'),util[_0x3173('0x2a')](_0x457cb6,{'showHidden':![],'depth':null}));});}else{logger[_0x3173('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x3173('0x29'),_0x3173('0x1a'),_0x3173('0x2b'));}break;case _0x3173('0x2c'):var _0x3a296d=_0x3173('0x2d');if(_0x26fdd3[_0x3173('0x2e')]&&_0x26fdd3[_0x3173('0x2f')]){var _0x1700f0={'recipient':[_0x4e89ef[_0x3173('0x1d')]],'message':_0x4e89ef[_0x3173('0x20')],'message_type':_0x26fdd3[_0x3173('0x30')]};if(_0x26fdd3['smsMethod']&&_0x26fdd3[_0x3173('0x30')]!=='SI'){_0x1700f0[_0x3173('0x31')]=_0x26fdd3[_0x3173('0x1d')];}var _0xfb44cb={'url':_0x3a296d+_0x3173('0x32')+_0x26fdd3[_0x3173('0x2e')]+'&password='+_0x26fdd3[_0x3173('0x2f')],'method':'GET'};rp(_0xfb44cb)['then'](function(_0x470e5f){var _0x53f86b=_0x470e5f[_0x3173('0x33')](';');var _0x2b1e1d={'user_key':_0x53f86b[0x0],'session_key':_0x53f86b[0x1]};_0xfb44cb={'url':_0x3a296d+_0x3173('0x34'),'method':'POST','headers':{'user_key':_0x2b1e1d[_0x3173('0x35')],'Session_key':_0x2b1e1d[_0x3173('0x36')]},'json':!![],'body':_0x1700f0};return rp(_0xfb44cb);})[_0x3173('0x14')](function(_0x5526d8){if(_0x5526d8[_0x3173('0x37')]>=0x1){var _0x505f1a={'messageId':_0x5526d8[_0x3173('0x38')]};if(_0x26fdd3[_0x3173('0x30')]!=='GP'||!_0x26fdd3[_0x3173('0x39')]){_0x505f1a[_0x3173('0x3a')]=!![];}return _0x531c05[_0x3173('0x3b')](_0x505f1a);}else{return logger[_0x3173('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','skebby',util[_0x3173('0x2a')](_0x5526d8,{'showHidden':![],'depth':null}));}})[_0x3173('0x26')](function(_0x551842){return logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x2c'),util[_0x3173('0x2a')](_0x551842,{'showHidden':![],'depth':null}));});}else{logger[_0x3173('0x27')](_0x3173('0x28'),'afterCreate',_0x3173('0x2c'),_0x3173('0x3c'));}break;case _0x3173('0x3d'):if(_0x26fdd3['authToken']){var _0x1da7fe={'recipient':_0x4e89ef[_0x3173('0x1d')],'message':_0x4e89ef['body'],'sender':_0x26fdd3[_0x3173('0x3e')]||_0x26fdd3[_0x3173('0x1d')],'authorization':_0x26fdd3[_0x3173('0x1c')]};var _0x45089e={'method':_0x3173('0x3f'),'uri':'https://smsapi.connectel.se/api/send/','body':_0x1da7fe,'json':!![]};rp(_0x45089e)[_0x3173('0x14')](function(_0x3d0b07){var _0x3421d4={'messageId':_0x3d0b07[_0x3173('0x40')]};if(!_0x26fdd3[_0x3173('0x39')]){_0x3421d4[_0x3173('0x3a')]=!![];}return _0x531c05[_0x3173('0x3b')](_0x3421d4);})[_0x3173('0x26')](function(_0x9639f8){logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x3d'),util['inspect'](_0x9639f8,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x3d'),_0x3173('0x41'));}break;case _0x3173('0x42'):if(_0x26fdd3[_0x3173('0x2e')]&&_0x26fdd3['password']){var _0x1da7fe={'messages':[{'source':_0x3173('0x43'),'to':_0x4e89ef['phone'],'body':_0x4e89ef[_0x3173('0x20')],'from':_0x26fdd3[_0x3173('0x3e')]||_0x26fdd3[_0x3173('0x1d')]}]};var _0x106b6b=util[_0x3173('0x44')](_0x3173('0x45'),_0x26fdd3[_0x3173('0x2e')],_0x26fdd3['password']);var _0x45089e={'method':_0x3173('0x3f'),'uri':_0x3173('0x46'),'body':_0x1da7fe,'headers':{'Authorization':util['format'](_0x3173('0x47'),new Buffer(_0x106b6b)[_0x3173('0x48')](_0x3173('0x49')))},'json':!![]};rp(_0x45089e)[_0x3173('0x14')](function(_0x586195){if(_0x586195['http_code']>=0xc8&&_0x586195[_0x3173('0x4a')]<=0xce){if(_0x586195[_0x3173('0x4b')]&&_0x586195[_0x3173('0x4b')][_0x3173('0x4c')]>0x0){var _0x4dc828=_[_0x3173('0x4d')](_0x586195[_0x3173('0x4b')]['messages']);var _0x5675a4={'messageId':_0x4dc828[_0x3173('0x4e')]};if(!_0x26fdd3[_0x3173('0x39')]){_0x5675a4[_0x3173('0x3a')]=!![];}return _0x531c05[_0x3173('0x3b')](_0x5675a4);}else{logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x4f'),util['inspect'](_0x586195,{'showHidden':![],'depth':null}));}}else{logger[_0x3173('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x3173('0x29'),_0x3173('0x4f'),util[_0x3173('0x2a')](_0x586195,{'showHidden':![],'depth':null}));}})['catch'](function(_0x3e3d3b){logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x3173('0x4f'),util[_0x3173('0x2a')](_0x3e3d3b,{'showHidden':![],'depth':null}));});}else{logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),'clickSend','Missing\x20parameters:\x20username,\x20password');}break;case'plivo':if(_0x26fdd3[_0x3173('0x50')]&&_0x26fdd3[_0x3173('0x1c')]){var _0x1da7fe={'dst':_0x4e89ef[_0x3173('0x1d')],'text':_0x4e89ef[_0x3173('0x20')],'src':_0x26fdd3['senderString']||_0x26fdd3[_0x3173('0x1d')],'url':_0x26fdd3[_0x3173('0x21')]+_0x3173('0x22')+_0x4e89ef['id']+_0x3173('0x23')+_0x26fdd3['token']};var _0x106b6b=util[_0x3173('0x44')](_0x3173('0x45'),_0x26fdd3['authId'],_0x26fdd3[_0x3173('0x1c')]);var _0x45089e={'method':_0x3173('0x3f'),'uri':util[_0x3173('0x44')](_0x3173('0x51'),_0x26fdd3[_0x3173('0x50')]),'body':_0x1da7fe,'headers':{'Authorization':util[_0x3173('0x44')]('Basic\x20%s',new Buffer(_0x106b6b)[_0x3173('0x48')]('base64'))},'json':!![]};rp(_0x45089e)[_0x3173('0x14')](function(_0x52817d){var _0x63f1c4={'messageId':_0x52817d[_0x3173('0x52')][0x0]};return _0x531c05[_0x3173('0x3b')](_0x63f1c4);})[_0x3173('0x26')](function(_0x78a35d){logger[_0x3173('0x27')](_0x3173('0x28'),'afterCreate','plivo',util[_0x3173('0x2a')](_0x78a35d,{'showHidden':![],'depth':null}));});}else{logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x53'),_0x3173('0x54'));}break;case _0x3173('0x55'):if(_0x26fdd3[_0x3173('0x2e')]&&_0x26fdd3[_0x3173('0x2f')]){if(_0x26fdd3[_0x3173('0x56')]){var _0x116b26={'method':_0x3173('0x3f'),'uri':_0x26fdd3[_0x3173('0x56')]+'/auth/1/session','body':{'username':_0x26fdd3[_0x3173('0x2e')],'password':_0x26fdd3[_0x3173('0x2f')]},'json':!![]};return rp(_0x116b26)[_0x3173('0x14')](function(_0x17cf8f){var _0x2e6c60={'method':'POST','uri':_0x26fdd3[_0x3173('0x56')]+_0x3173('0x57'),'body':{'messages':[{'from':_0x26fdd3[_0x3173('0x1d')],'destinations':[{'to':_0x4e89ef[_0x3173('0x1d')]}],'text':_0x4e89ef[_0x3173('0x20')],'notifyUrl':_0x26fdd3['remote']+'/api/sms/messages/'+_0x4e89ef['id']+_0x3173('0x23')+_0x26fdd3[_0x3173('0x24')],'notifyContentType':'application/json','callbackData':_0x26fdd3[_0x3173('0x1d')]+';'+_0x4e89ef[_0x3173('0x20')]}]},'headers':{'Authorization':_0x3173('0x58')+_0x17cf8f[_0x3173('0x24')]},'json':!![]};return rp(_0x2e6c60)[_0x3173('0x14')](function(_0x38976c){if(_0x38976c[_0x3173('0x1e')]){var _0x532265={'messageId':_0x38976c['messages'][0x0][_0x3173('0x9')]};if(!_0x26fdd3[_0x3173('0x39')]){_0x532265[_0x3173('0x3a')]=!![];}return _0x531c05[_0x3173('0x3b')](_0x532265);}else{return logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x55'),util[_0x3173('0x2a')](_0x38976c,{'showHidden':![],'depth':null}));}});})['catch'](function(_0x4bd7ed){return logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x55'),util['inspect'](_0x4bd7ed,{'showHidden':![],'depth':null}));});}else{logger[_0x3173('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x3173('0x29'),'infobip','Missing\x20parameters:\x20base_url');}}else{logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),'infobip',_0x3173('0x3c'));}break;case _0x3173('0x59'):var _0x1fa20b=require('crypto');if(_0x26fdd3['apiKey']){var _0x4b4e22={};_0x4b4e22[_0x3173('0x5a')]=_0x26fdd3[_0x3173('0x2e')];_0x4b4e22[_0x3173('0x1d')]=_0x4e89ef[_0x3173('0x1d')];_0x4b4e22['sender']=_0x26fdd3[_0x3173('0x1d')];_0x4b4e22['text']=_0x4e89ef['body'];_0x4b4e22['timestamp']=+new Date();var _0x407db3='';var _0x2bb0ac='';var _0x2a02c1=Object['keys'](_0x4b4e22);_0x2a02c1['sort']();for(var _0x9844eb=0x0;_0x9844eb<_0x2a02c1['length'];_0x9844eb++){if(_0x407db3!=''){_0x407db3+='&';}_0x407db3+=_0x2a02c1[_0x9844eb]+'='+encodeURIComponent(_0x4b4e22[_0x2a02c1[_0x9844eb]]);_0x2bb0ac+=_0x4b4e22[_0x2a02c1[_0x9844eb]];}_0x2bb0ac+=_0x26fdd3[_0x3173('0x5b')];_0x2bb0ac=_0x1fa20b[_0x3173('0x5c')](_0x3173('0x5d'))['update'](_0x2bb0ac)[_0x3173('0x5e')](_0x3173('0x5f'));if(_0x407db3!==''){_0x407db3+='&';}_0x407db3+=_0x3173('0x60')+_0x2bb0ac;var _0xfb44cb={'method':_0x3173('0x61'),'uri':_0x26fdd3[_0x3173('0x56')]+'/external/get/send.php?'+_0x407db3,'json':!![]};return rp(_0xfb44cb)[_0x3173('0x14')](function(_0xfd4899){var _0xe298ca=Object[_0x3173('0x62')](_0xfd4899);if(_0xfd4899[_0xe298ca[0x0]][_0x3173('0x27')]&&parseInt(_0xfd4899[_0xe298ca[0x0]][_0x3173('0x27')])===0x0){var _0x38bbea={'messageId':_0xfd4899[_0xe298ca[0x0]]['id_sms']};if(!_0x26fdd3['deliveryReport']){_0x38bbea[_0x3173('0x3a')]=!![];}return _0x531c05[_0x3173('0x3b')](_0x38bbea);}else{return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x3173('0x29'),_0x3173('0x59'),util[_0x3173('0x2a')](_0xfd4899['error'],{'showHidden':![],'depth':null}));}})[_0x3173('0x26')](function(_0x57a543){return logger['error'](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x59'),util[_0x3173('0x2a')](_0x57a543,{'showHidden':![],'depth':null}));});}else{logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x59'),'Missing\x20parameters:\x20apiKey');}break;case _0x3173('0x63'):if(_0x26fdd3[_0x3173('0x5b')]){var _0x483791={'method':_0x3173('0x3f'),'uri':_0x3173('0x64'),'headers':{'Authorization':_0x26fdd3[_0x3173('0x5b')]},'body':{'content':_0x4e89ef[_0x3173('0x20')],'to':[_0x4e89ef['phone']],'from':_0x26fdd3['phone'],'binary':![],'clientMessageId':_0x3173('0x65'),'charset':_0x3173('0x66')},'json':!![]};rp(_0x483791)[_0x3173('0x14')](function(_0x5f0975){if(!_0x5f0975[_0x3173('0x27')]){var _0x7a2526={'messageId':_0x5f0975[_0x3173('0x1e')][0x0][_0x3173('0x67')]};if(!_0x26fdd3['deliveryReport']){_0x7a2526['read']=!![];}return _0x531c05[_0x3173('0x3b')](_0x7a2526);}else{return logger[_0x3173('0x27')](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x63'),util[_0x3173('0x2a')](_0x5f0975[_0x3173('0x27')],{'showHidden':![],'depth':null}));}})[_0x3173('0x26')](function(_0x5a5f43){return logger[_0x3173('0x27')](_0x3173('0x28'),'afterCreate','clickatell',util[_0x3173('0x2a')](_0x5a5f43,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x63'),_0x3173('0x68'));}break;case'intelepeer':if(_0x26fdd3[_0x3173('0x5b')]){var _0x1ba8f3={};var _0xfb44cb={'method':_0x3173('0x3f'),'uri':_0x3173('0x69'),'headers':{'Authorization':'Bearer\x20'+_0x26fdd3['apiKey'],'Content-Type':_0x3173('0x6a')},'body':{'from':_0x26fdd3['phone'],'to':_0x4e89ef[_0x3173('0x1d')],'text':_0x4e89ef[_0x3173('0x20')]},'json':!![]};return rp(_0xfb44cb)['then'](function(_0x3d6774){if(_0x3d6774[_0x3173('0x6b')]==0xca){_0x1ba8f3[_0x3173('0x6c')]=_0x3d6774;var _0x500807={'method':'POST','uri':_0x3173('0x6d'),'headers':{'Authorization':_0x3173('0x6e')+_0x26fdd3[_0x3173('0x5b')],'Content-Type':'application/json'},'body':{'refid':_0x1ba8f3['message'][_0x3173('0x6f')]},'json':!![]};return rp(_0x500807)[_0x3173('0x14')](function(_0x4675b3){_0x1ba8f3[_0x3173('0x70')]=_0x4675b3;var _0x318734={'messageId':_0x1ba8f3[_0x3173('0x6c')][_0x3173('0x6f')],'read':!![]};return _0x531c05['update'](_0x318734);});}else{return logger[_0x3173('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x3173('0x29'),'intelepeer',util[_0x3173('0x2a')](_0x3d6774,{'showHidden':![],'depth':null}));}})[_0x3173('0x26')](function(_0x16ba5c){return logger[_0x3173('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x3173('0x29'),_0x3173('0x71'),util['inspect'](_0x16ba5c,{'showHidden':![],'depth':null}));});}else{return logger['error'](_0x3173('0x28'),_0x3173('0x29'),_0x3173('0x71'),_0x3173('0x72'));}break;}}})[_0x3173('0x73')](function(){_0xdd32ba();});}else{_0xdd32ba();}}},'charset':_0x3173('0x74'),'collate':_0x3173('0x75')});};