Built motion from commit (unavailable).|2.3.91
[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 _0xe319=['https://api.plivo.com/v1/Account/%s/Message/','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/sms/2/text/advanced','IBSSO\x20','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','sender','text','timestamp','keys','sort','length','md5','digest','signature=','GET','https://sms.csc.lv/external/get/send.php?','id_sms','Missing\x20parameters:\x20apiKey','uuid','UTF-8','apiMessageId','clickatell','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','utf8mb4','utf8mb4_unicode_ci','lodash','util','moment','bluebird','./smsMessage.attributes','exports','define','SmsMessage','sms_messages','messageId','models','get','direction','toLowerCase','out','secret','isNil','SmsInteraction','findOne','SmsInteractionId','then','update','createdAt','body','catch','error','SmsAccount','find','SmsAccountId','type','twilio','accountSid','authToken','messages','create','phone','/status?token=','token','sid','afterCreate','inspect','SmsMessage,\x20%s,\x20%s,\x20%s','skebby','https://api.skebby.it/API/v1.0/REST/','username','password','smsMethod','login?username=','&password=','split','sms','POST','user_key','session_key','total_sent','internal_order_id','deliveryReport','Missing\x20parameters:\x20username,\x20password','connectel','senderString','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','base64','http_code','head','data','read','clickSend','plivo','authId','remote','/api/sms/messages/'];(function(_0x51a049,_0x46353b){var _0x4d1063=function(_0x1a95dc){while(--_0x1a95dc){_0x51a049['push'](_0x51a049['shift']());}};_0x4d1063(++_0x46353b);}(_0xe319,0x182));var _0x9e31=function(_0x4f3e09,_0x5aef38){_0x4f3e09=_0x4f3e09-0x0;var _0x3f6966=_0xe319[_0x4f3e09];return _0x3f6966;};'use strict';var _=require(_0x9e31('0x0'));var util=require(_0x9e31('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x9e31('0x2'));var BPromise=require(_0x9e31('0x3'));var rp=require('request-promise');var attributes=require(_0x9e31('0x4'));module[_0x9e31('0x5')]=function(_0x1573e0,_0x45c8d9){return _0x1573e0[_0x9e31('0x6')](_0x9e31('0x7'),attributes,{'tableName':_0x9e31('0x8'),'paranoid':![],'indexes':[{'name':_0x9e31('0x9'),'fields':[_0x9e31('0x9')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3f3b4d,_0x5bdc59,_0xcb5727){var _0x5cd61d=_0x1573e0[_0x9e31('0xa')];var _0x4c31cb=_0x3f3b4d[_0x9e31('0xb')]({'plain':!![]});if(_0x4c31cb[_0x9e31('0xc')][_0x9e31('0xd')]()==='in'||_0x4c31cb[_0x9e31('0xc')][_0x9e31('0xd')]()===_0x9e31('0xe')&&!_0x4c31cb[_0x9e31('0xf')]&&!_[_0x9e31('0x10')](_0x4c31cb['UserId'])){_0x5cd61d[_0x9e31('0x11')][_0x9e31('0x12')]({'where':{'id':_0x4c31cb[_0x9e31('0x13')]}})[_0x9e31('0x14')](function(_0x5852c0){if(_0x5852c0){_0x5852c0[_0x9e31('0x15')]({'lastMsgAt':_0x4c31cb[_0x9e31('0x16')],'lastMsgDirection':_0x4c31cb[_0x9e31('0xc')][_0x9e31('0xd')](),'lastMsgBody':_0x4c31cb[_0x9e31('0x17')]});}})[_0x9e31('0x18')](function(_0x3d7c1a){console[_0x9e31('0x19')](_0x3d7c1a);});}if(_0x4c31cb[_0x9e31('0xc')]===_0x9e31('0xe')&&!_0x4c31cb['secret']){var _0x1e0448;_0x5cd61d[_0x9e31('0x1a')][_0x9e31('0x1b')]({'where':{'id':_0x4c31cb[_0x9e31('0x1c')]},'raw':!![]})[_0x9e31('0x14')](function(_0x3d4f22){_0x1e0448=_0x3d4f22;if(_0x1e0448&&_0x1e0448['type']){switch(_0x1e0448[_0x9e31('0x1d')]){case'twilio':var _0xcbcf66=require(_0x9e31('0x1e'));if(_0x1e0448[_0x9e31('0x1f')]&&_0x1e0448[_0x9e31('0x20')]&&_0x1e0448['phone']){var _0xe6a61=new _0xcbcf66(_0x1e0448[_0x9e31('0x1f')],_0x1e0448[_0x9e31('0x20')]);_0xe6a61[_0x9e31('0x21')][_0x9e31('0x22')]({'body':_0x4c31cb[_0x9e31('0x17')],'to':_0x4c31cb[_0x9e31('0x23')],'from':_0x1e0448['phone'],'statusCallback':_0x1e0448['remote']+'/api/sms/messages/'+_0x4c31cb['id']+_0x9e31('0x24')+_0x1e0448[_0x9e31('0x25')]})[_0x9e31('0x14')](function(_0x5b3545){if(_0x5b3545[_0x9e31('0x26')]){return _0x3f3b4d['update']({'messageId':_0x5b3545['sid']});}})[_0x9e31('0x18')](function(_0x12d6f0){logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9e31('0x27'),_0x9e31('0x1e'),util[_0x9e31('0x28')](_0x12d6f0,{'showHidden':![],'depth':null}));});}else{logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),'twilio','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x9e31('0x2a'):var _0x19e39e=_0x9e31('0x2b');if(_0x1e0448[_0x9e31('0x2c')]&&_0x1e0448[_0x9e31('0x2d')]){var _0x1a0649={'recipient':[_0x4c31cb['phone']],'message':_0x4c31cb[_0x9e31('0x17')],'message_type':_0x1e0448[_0x9e31('0x2e')]};var _0x5772ae={'url':_0x19e39e+_0x9e31('0x2f')+_0x1e0448[_0x9e31('0x2c')]+_0x9e31('0x30')+_0x1e0448[_0x9e31('0x2d')],'method':'GET'};rp(_0x5772ae)[_0x9e31('0x14')](function(_0x30e6dd){var _0x404fc0=_0x30e6dd[_0x9e31('0x31')](';');var _0x46d91c={'user_key':_0x404fc0[0x0],'session_key':_0x404fc0[0x1]};_0x5772ae={'url':_0x19e39e+_0x9e31('0x32'),'method':_0x9e31('0x33'),'headers':{'user_key':_0x46d91c[_0x9e31('0x34')],'Session_key':_0x46d91c[_0x9e31('0x35')]},'json':!![],'body':_0x1a0649};return rp(_0x5772ae);})['then'](function(_0x4037c9){if(_0x4037c9[_0x9e31('0x36')]>=0x1){var _0x298ec4={'messageId':_0x4037c9[_0x9e31('0x37')]};if(_0x1e0448[_0x9e31('0x2e')]!=='GP'||!_0x1e0448[_0x9e31('0x38')]){_0x298ec4['read']=!![];}return _0x3f3b4d[_0x9e31('0x15')](_0x298ec4);}else{return logger[_0x9e31('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9e31('0x27'),_0x9e31('0x2a'),util['inspect'](_0x4037c9,{'showHidden':![],'depth':null}));}})[_0x9e31('0x18')](function(_0x491123){return logger[_0x9e31('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9e31('0x27'),_0x9e31('0x2a'),util[_0x9e31('0x28')](_0x491123,{'showHidden':![],'depth':null}));});}else{logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),'skebby',_0x9e31('0x39'));}break;case _0x9e31('0x3a'):if(_0x1e0448[_0x9e31('0x20')]){var _0x2a72f5={'recipient':_0x4c31cb[_0x9e31('0x23')],'message':_0x4c31cb['body'],'sender':_0x1e0448[_0x9e31('0x3b')]||_0x1e0448[_0x9e31('0x23')],'authorization':_0x1e0448['authToken']};var _0x5bdc59={'method':'POST','uri':'https://smsapi.connectel.se/api/send/','body':_0x2a72f5,'json':!![]};rp(_0x5bdc59)[_0x9e31('0x14')](function(_0xd453f3){var _0x3da38={'messageId':_0xd453f3['requestid']};if(!_0x1e0448[_0x9e31('0x38')]){_0x3da38['read']=!![];}return _0x3f3b4d['update'](_0x3da38);})[_0x9e31('0x18')](function(_0x5b2ed0){logger[_0x9e31('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9e31('0x27'),_0x9e31('0x3a'),util[_0x9e31('0x28')](_0x5b2ed0,{'showHidden':![],'depth':null}));});}else{logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x3a'),_0x9e31('0x3c'));}break;case _0x9e31('0x3d'):if(_0x1e0448[_0x9e31('0x2c')]&&_0x1e0448['password']){var _0x2a72f5={'messages':[{'source':_0x9e31('0x3e'),'to':_0x4c31cb['phone'],'body':_0x4c31cb['body'],'from':_0x1e0448[_0x9e31('0x3b')]||_0x1e0448[_0x9e31('0x23')]}]};var _0x1daf0a=util[_0x9e31('0x3f')](_0x9e31('0x40'),_0x1e0448[_0x9e31('0x2c')],_0x1e0448[_0x9e31('0x2d')]);var _0x5bdc59={'method':_0x9e31('0x33'),'uri':_0x9e31('0x41'),'body':_0x2a72f5,'headers':{'Authorization':util[_0x9e31('0x3f')](_0x9e31('0x42'),new Buffer(_0x1daf0a)[_0x9e31('0x43')](_0x9e31('0x44')))},'json':!![]};rp(_0x5bdc59)[_0x9e31('0x14')](function(_0x44d396){if(_0x44d396['http_code']>=0xc8&&_0x44d396[_0x9e31('0x45')]<=0xce){if(_0x44d396['data']&&_0x44d396['data']['queued_count']>0x0){var _0x1e875a=_[_0x9e31('0x46')](_0x44d396[_0x9e31('0x47')]['messages']);var _0x28887b={'messageId':_0x1e875a['message_id']};if(!_0x1e0448['deliveryReport']){_0x28887b[_0x9e31('0x48')]=!![];}return _0x3f3b4d[_0x9e31('0x15')](_0x28887b);}else{logger[_0x9e31('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9e31('0x27'),_0x9e31('0x49'),util[_0x9e31('0x28')](_0x44d396,{'showHidden':![],'depth':null}));}}else{logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x49'),util[_0x9e31('0x28')](_0x44d396,{'showHidden':![],'depth':null}));}})[_0x9e31('0x18')](function(_0x2d0ab8){logger[_0x9e31('0x19')](_0x9e31('0x29'),'afterCreate','clickSend',util[_0x9e31('0x28')](_0x2d0ab8,{'showHidden':![],'depth':null}));});}else{logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x49'),'Missing\x20parameters:\x20username,\x20password');}break;case _0x9e31('0x4a'):if(_0x1e0448[_0x9e31('0x4b')]&&_0x1e0448[_0x9e31('0x20')]){var _0x2a72f5={'dst':_0x4c31cb[_0x9e31('0x23')],'text':_0x4c31cb[_0x9e31('0x17')],'src':_0x1e0448['senderString']||_0x1e0448[_0x9e31('0x23')],'url':_0x1e0448[_0x9e31('0x4c')]+_0x9e31('0x4d')+_0x4c31cb['id']+_0x9e31('0x24')+_0x1e0448[_0x9e31('0x25')]};var _0x1daf0a=util[_0x9e31('0x3f')](_0x9e31('0x40'),_0x1e0448[_0x9e31('0x4b')],_0x1e0448['authToken']);var _0x5bdc59={'method':_0x9e31('0x33'),'uri':util[_0x9e31('0x3f')](_0x9e31('0x4e'),_0x1e0448[_0x9e31('0x4b')]),'body':_0x2a72f5,'headers':{'Authorization':util[_0x9e31('0x3f')]('Basic\x20%s',new Buffer(_0x1daf0a)[_0x9e31('0x43')]('base64'))},'json':!![]};rp(_0x5bdc59)[_0x9e31('0x14')](function(_0x3f22d8){var _0x1ec913={'messageId':_0x3f22d8[_0x9e31('0x4f')][0x0]};return _0x3f3b4d['update'](_0x1ec913);})['catch'](function(_0x45ca72){logger[_0x9e31('0x19')](_0x9e31('0x29'),'afterCreate','plivo',util['inspect'](_0x45ca72,{'showHidden':![],'depth':null}));});}else{logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x4a'),_0x9e31('0x50'));}break;case _0x9e31('0x51'):if(_0x1e0448[_0x9e31('0x2c')]&&_0x1e0448[_0x9e31('0x2d')]){if(_0x1e0448[_0x9e31('0x52')]){var _0x529167={'method':_0x9e31('0x33'),'uri':_0x1e0448[_0x9e31('0x52')]+'/auth/1/session','body':{'username':_0x1e0448[_0x9e31('0x2c')],'password':_0x1e0448[_0x9e31('0x2d')]},'json':!![]};return rp(_0x529167)[_0x9e31('0x14')](function(_0x44e3e3){var _0x20333f={'method':_0x9e31('0x33'),'uri':_0x1e0448[_0x9e31('0x52')]+_0x9e31('0x53'),'body':{'messages':[{'from':_0x1e0448[_0x9e31('0x23')],'destinations':[{'to':_0x4c31cb[_0x9e31('0x23')]}],'text':_0x4c31cb['body'],'notifyUrl':_0x1e0448[_0x9e31('0x4c')]+_0x9e31('0x4d')+_0x4c31cb['id']+_0x9e31('0x24')+_0x1e0448['token'],'notifyContentType':'application/json','callbackData':_0x1e0448['phone']+';'+_0x4c31cb[_0x9e31('0x17')]}]},'headers':{'Authorization':_0x9e31('0x54')+_0x44e3e3['token']},'json':!![]};return rp(_0x20333f)[_0x9e31('0x14')](function(_0x455080){if(_0x455080['messages']){var _0x20bf4a={'messageId':_0x455080[_0x9e31('0x21')][0x0][_0x9e31('0x9')]};if(!_0x1e0448['deliveryReport']){_0x20bf4a[_0x9e31('0x48')]=!![];}return _0x3f3b4d['update'](_0x20bf4a);}else{return logger[_0x9e31('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9e31('0x27'),_0x9e31('0x51'),util[_0x9e31('0x28')](_0x455080,{'showHidden':![],'depth':null}));}});})[_0x9e31('0x18')](function(_0x5b497b){return logger['error'](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x51'),util[_0x9e31('0x28')](_0x5b497b,{'showHidden':![],'depth':null}));});}else{logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x51'),_0x9e31('0x55'));}}else{logger['error'](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x51'),_0x9e31('0x39'));}break;case _0x9e31('0x56'):var _0xe00e1f=require(_0x9e31('0x57'));if(_0x1e0448[_0x9e31('0x58')]){var _0x11e87b={};_0x11e87b['login']=_0x1e0448[_0x9e31('0x2c')];_0x11e87b[_0x9e31('0x23')]=_0x4c31cb[_0x9e31('0x23')];_0x11e87b[_0x9e31('0x59')]=_0x1e0448[_0x9e31('0x23')];_0x11e87b[_0x9e31('0x5a')]=_0x4c31cb['body'];_0x11e87b[_0x9e31('0x5b')]=+new Date();var _0x52232d='';var _0x281f60='';var _0x58725a=Object[_0x9e31('0x5c')](_0x11e87b);_0x58725a[_0x9e31('0x5d')]();for(var _0x5b59b4=0x0;_0x5b59b4<_0x58725a[_0x9e31('0x5e')];_0x5b59b4++){if(_0x52232d!=''){_0x52232d+='&';}_0x52232d+=_0x58725a[_0x5b59b4]+'='+encodeURIComponent(_0x11e87b[_0x58725a[_0x5b59b4]]);_0x281f60+=_0x11e87b[_0x58725a[_0x5b59b4]];}_0x281f60+=_0x1e0448[_0x9e31('0x58')];_0x281f60=_0xe00e1f['createHash'](_0x9e31('0x5f'))[_0x9e31('0x15')](_0x281f60)[_0x9e31('0x60')]('hex');if(_0x52232d!==''){_0x52232d+='&';}_0x52232d+=_0x9e31('0x61')+_0x281f60;var _0x5772ae={'method':_0x9e31('0x62'),'uri':_0x9e31('0x63')+_0x52232d,'json':!![]};return rp(_0x5772ae)[_0x9e31('0x14')](function(_0x417127){var _0x2473e9=Object[_0x9e31('0x5c')](_0x417127);if(_0x417127[_0x2473e9[0x0]][_0x9e31('0x19')]&&parseInt(_0x417127[_0x2473e9[0x0]][_0x9e31('0x19')])===0x0){var _0x250f92={'messageId':_0x417127[_0x2473e9[0x0]][_0x9e31('0x64')]};if(!_0x1e0448[_0x9e31('0x38')]){_0x250f92[_0x9e31('0x48')]=!![];}return _0x3f3b4d['update'](_0x250f92);}else{return logger[_0x9e31('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9e31('0x27'),_0x9e31('0x56'),util[_0x9e31('0x28')](_0x417127['error'],{'showHidden':![],'depth':null}));}})['catch'](function(_0x795c6){return logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x56'),util[_0x9e31('0x28')](_0x795c6,{'showHidden':![],'depth':null}));});}else{logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x56'),_0x9e31('0x65'));}break;case'clickatell':if(_0x1e0448[_0x9e31('0x58')]){var _0x431996={'method':_0x9e31('0x33'),'uri':'https://platform.clickatell.com/messages','headers':{'Authorization':_0x1e0448['apiKey']},'body':{'content':_0x4c31cb[_0x9e31('0x17')],'to':[_0x4c31cb['phone']],'from':_0x1e0448[_0x9e31('0x23')],'binary':![],'clientMessageId':_0x9e31('0x66'),'charset':_0x9e31('0x67')},'json':!![]};rp(_0x431996)[_0x9e31('0x14')](function(_0x2e533d){if(!_0x2e533d[_0x9e31('0x19')]){var _0x512724={'messageId':_0x2e533d[_0x9e31('0x21')][0x0][_0x9e31('0x68')]};if(!_0x1e0448[_0x9e31('0x38')]){_0x512724[_0x9e31('0x48')]=!![];}return _0x3f3b4d[_0x9e31('0x15')](_0x512724);}else{return logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x69'),util[_0x9e31('0x28')](_0x2e533d['error'],{'showHidden':![],'depth':null}));}})[_0x9e31('0x18')](function(_0x39b7f0){return logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),'clickatell',util[_0x9e31('0x28')](_0x39b7f0,{'showHidden':![],'depth':null}));});}else{logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),'clickatell',_0x9e31('0x65'));}break;case _0x9e31('0x6a'):if(_0x1e0448['apiKey']){var _0xb345c3={};var _0x5772ae={'method':'POST','uri':_0x9e31('0x6b'),'headers':{'Authorization':_0x9e31('0x6c')+_0x1e0448[_0x9e31('0x58')],'Content-Type':'application/json'},'body':{'from':_0x1e0448[_0x9e31('0x23')],'to':_0x4c31cb[_0x9e31('0x23')],'text':_0x4c31cb[_0x9e31('0x17')]},'json':!![]};return rp(_0x5772ae)['then'](function(_0x2130ee){if(_0x2130ee[_0x9e31('0x6d')]==0xca){_0xb345c3[_0x9e31('0x6e')]=_0x2130ee;var _0x303134={'method':_0x9e31('0x33'),'uri':_0x9e31('0x6f'),'headers':{'Authorization':_0x9e31('0x6c')+_0x1e0448[_0x9e31('0x58')],'Content-Type':'application/json'},'body':{'refid':_0xb345c3[_0x9e31('0x6e')]['refid']},'json':!![]};return rp(_0x303134)[_0x9e31('0x14')](function(_0x1323dd){_0xb345c3[_0x9e31('0x70')]=_0x1323dd;var _0xa3e2d3={'messageId':_0xb345c3[_0x9e31('0x6e')][_0x9e31('0x71')],'read':!![]};return _0x3f3b4d[_0x9e31('0x15')](_0xa3e2d3);});}else{return logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),'intelepeer',util['inspect'](_0x2130ee,{'showHidden':![],'depth':null}));}})['catch'](function(_0x5ba657){return logger['error'](_0x9e31('0x29'),_0x9e31('0x27'),_0x9e31('0x6a'),util[_0x9e31('0x28')](_0x5ba657,{'showHidden':![],'depth':null}));});}else{return logger[_0x9e31('0x19')](_0x9e31('0x29'),_0x9e31('0x27'),'intelepeer','Token\x20not\x20received');}break;}}})['finally'](function(){_0xcb5727();});}else{_0xcb5727();}}},'charset':_0x9e31('0x72'),'collate':_0x9e31('0x73')});};