Built motion from commit (unavailable).|2.3.96
[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 _0x29b6=['username','smsMethod','login?username=','&password=','split','POST','user_key','session_key','total_sent','internal_order_id','deliveryReport','connectel','senderString','read','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','password','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','base64','http_code','data','queued_count','head','messages','clickSend','Missing\x20parameters:\x20username,\x20password','plivo','authId','%s:%s','https://api.plivo.com/v1/Account/%s/Message/','toString','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/sms/2/text/advanced','remote','token','IBSSO\x20','messageId','Missing\x20parameters:\x20base_url','csc','crypto','login','sender','keys','sort','length','apiKey','createHash','md5','digest','signature=','GET','https://sms.csc.lv/external/get/send.php?','clickatell','uuid','UTF-8','apiMessageId','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','application/json','code','message','refid','Token\x20not\x20received','finally','utf8mb4_unicode_ci','lodash','moment','request-promise','./smsMessage.attributes','exports','define','SmsMessage','models','get','direction','toLowerCase','secret','UserId','SmsInteraction','findOne','then','update','createdAt','body','catch','error','out','SmsAccount','find','SmsAccountId','type','twilio','accountSid','authToken','phone','create','/api/sms/messages/','/status?token=','sid','afterCreate','inspect','SmsMessage,\x20%s,\x20%s,\x20%s','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','https://api.skebby.it/API/v1.0/REST/'];(function(_0x51121d,_0x5e48de){var _0x2d2bf8=function(_0x1fe5cf){while(--_0x1fe5cf){_0x51121d['push'](_0x51121d['shift']());}};_0x2d2bf8(++_0x5e48de);}(_0x29b6,0x128));var _0x629b=function(_0x5aea55,_0x4df100){_0x5aea55=_0x5aea55-0x0;var _0x49c479=_0x29b6[_0x5aea55];return _0x49c479;};'use strict';var _=require(_0x629b('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x629b('0x1'));var BPromise=require('bluebird');var rp=require(_0x629b('0x2'));var attributes=require(_0x629b('0x3'));module[_0x629b('0x4')]=function(_0x2909be,_0x4c9b31){return _0x2909be[_0x629b('0x5')](_0x629b('0x6'),attributes,{'tableName':'sms_messages','paranoid':![],'indexes':[{'name':'messageId','fields':['messageId']}],'timestamps':!![],'hooks':{'afterCreate':function(_0x285683,_0x5395f3,_0xbd5f57){var _0x47b77a=_0x2909be[_0x629b('0x7')];var _0x75664c=_0x285683[_0x629b('0x8')]({'plain':!![]});if(_0x75664c[_0x629b('0x9')][_0x629b('0xa')]()==='in'||_0x75664c[_0x629b('0x9')]['toLowerCase']()==='out'&&!_0x75664c[_0x629b('0xb')]&&!_['isNil'](_0x75664c[_0x629b('0xc')])){_0x47b77a[_0x629b('0xd')][_0x629b('0xe')]({'where':{'id':_0x75664c['SmsInteractionId']}})[_0x629b('0xf')](function(_0x129f23){if(_0x129f23){_0x129f23[_0x629b('0x10')]({'lastMsgAt':_0x75664c[_0x629b('0x11')],'lastMsgDirection':_0x75664c[_0x629b('0x9')][_0x629b('0xa')](),'lastMsgBody':_0x75664c[_0x629b('0x12')]});}})[_0x629b('0x13')](function(_0x5afa40){console[_0x629b('0x14')](_0x5afa40);});}if(_0x75664c[_0x629b('0x9')]===_0x629b('0x15')&&!_0x75664c[_0x629b('0xb')]){var _0x1f2ce5;_0x47b77a[_0x629b('0x16')][_0x629b('0x17')]({'where':{'id':_0x75664c[_0x629b('0x18')]},'raw':!![]})[_0x629b('0xf')](function(_0x5decec){_0x1f2ce5=_0x5decec;if(_0x1f2ce5&&_0x1f2ce5[_0x629b('0x19')]){switch(_0x1f2ce5['type']){case _0x629b('0x1a'):var _0x12837a=require(_0x629b('0x1a'));if(_0x1f2ce5[_0x629b('0x1b')]&&_0x1f2ce5[_0x629b('0x1c')]&&_0x1f2ce5[_0x629b('0x1d')]){var _0x28fa62=new _0x12837a(_0x1f2ce5['accountSid'],_0x1f2ce5[_0x629b('0x1c')]);_0x28fa62['messages'][_0x629b('0x1e')]({'body':_0x75664c[_0x629b('0x12')],'to':_0x75664c[_0x629b('0x1d')],'from':_0x1f2ce5['phone'],'statusCallback':_0x1f2ce5['remote']+_0x629b('0x1f')+_0x75664c['id']+_0x629b('0x20')+_0x1f2ce5['token']})[_0x629b('0xf')](function(_0x4edb68){if(_0x4edb68[_0x629b('0x21')]){return _0x285683['update']({'messageId':_0x4edb68[_0x629b('0x21')]});}})['catch'](function(_0x28dced){logger[_0x629b('0x14')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x629b('0x22'),_0x629b('0x1a'),util[_0x629b('0x23')](_0x28dced,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x629b('0x24'),_0x629b('0x22'),_0x629b('0x1a'),_0x629b('0x25'));}break;case _0x629b('0x26'):var _0x3d57d5=_0x629b('0x27');if(_0x1f2ce5[_0x629b('0x28')]&&_0x1f2ce5['password']){var _0x268ddd={'recipient':[_0x75664c[_0x629b('0x1d')]],'message':_0x75664c[_0x629b('0x12')],'message_type':_0x1f2ce5[_0x629b('0x29')]};var _0x5aea9e={'url':_0x3d57d5+_0x629b('0x2a')+_0x1f2ce5['username']+_0x629b('0x2b')+_0x1f2ce5['password'],'method':'GET'};rp(_0x5aea9e)[_0x629b('0xf')](function(_0x571e5d){var _0xb23bdb=_0x571e5d[_0x629b('0x2c')](';');var _0x4c28f7={'user_key':_0xb23bdb[0x0],'session_key':_0xb23bdb[0x1]};_0x5aea9e={'url':_0x3d57d5+'sms','method':_0x629b('0x2d'),'headers':{'user_key':_0x4c28f7[_0x629b('0x2e')],'Session_key':_0x4c28f7[_0x629b('0x2f')]},'json':!![],'body':_0x268ddd};return rp(_0x5aea9e);})[_0x629b('0xf')](function(_0x3ba3bf){if(_0x3ba3bf[_0x629b('0x30')]>=0x1){var _0x14e2d1={'messageId':_0x3ba3bf[_0x629b('0x31')]};if(_0x1f2ce5['smsMethod']!=='GP'||!_0x1f2ce5[_0x629b('0x32')]){_0x14e2d1['read']=!![];}return _0x285683[_0x629b('0x10')](_0x14e2d1);}else{return logger[_0x629b('0x14')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x629b('0x22'),'skebby',util[_0x629b('0x23')](_0x3ba3bf,{'showHidden':![],'depth':null}));}})['catch'](function(_0x713347){return logger['error'](_0x629b('0x24'),'afterCreate','skebby',util['inspect'](_0x713347,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x629b('0x24'),_0x629b('0x22'),_0x629b('0x26'),'Missing\x20parameters:\x20username,\x20password');}break;case _0x629b('0x33'):if(_0x1f2ce5[_0x629b('0x1c')]){var _0x496331={'recipient':_0x75664c[_0x629b('0x1d')],'message':_0x75664c['body'],'sender':_0x1f2ce5[_0x629b('0x34')]||_0x1f2ce5['phone'],'authorization':_0x1f2ce5[_0x629b('0x1c')]};var _0x5395f3={'method':_0x629b('0x2d'),'uri':'https://smsapi.connectel.se/api/send/','body':_0x496331,'json':!![]};rp(_0x5395f3)['then'](function(_0x693cff){var _0x5957ed={'messageId':_0x693cff['requestid']};if(!_0x1f2ce5[_0x629b('0x32')]){_0x5957ed[_0x629b('0x35')]=!![];}return _0x285683[_0x629b('0x10')](_0x5957ed);})[_0x629b('0x13')](function(_0x5d0b41){logger[_0x629b('0x14')](_0x629b('0x24'),_0x629b('0x22'),_0x629b('0x33'),util[_0x629b('0x23')](_0x5d0b41,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x629b('0x22'),_0x629b('0x33'),_0x629b('0x36'));}break;case _0x629b('0x37'):if(_0x1f2ce5[_0x629b('0x28')]&&_0x1f2ce5['password']){var _0x496331={'messages':[{'source':_0x629b('0x38'),'to':_0x75664c[_0x629b('0x1d')],'body':_0x75664c[_0x629b('0x12')],'from':_0x1f2ce5[_0x629b('0x34')]||_0x1f2ce5[_0x629b('0x1d')]}]};var _0xf4c39d=util[_0x629b('0x39')]('%s:%s',_0x1f2ce5[_0x629b('0x28')],_0x1f2ce5[_0x629b('0x3a')]);var _0x5395f3={'method':_0x629b('0x2d'),'uri':_0x629b('0x3b'),'body':_0x496331,'headers':{'Authorization':util[_0x629b('0x39')](_0x629b('0x3c'),new Buffer(_0xf4c39d)['toString'](_0x629b('0x3d')))},'json':!![]};rp(_0x5395f3)[_0x629b('0xf')](function(_0x410f15){if(_0x410f15[_0x629b('0x3e')]>=0xc8&&_0x410f15['http_code']<=0xce){if(_0x410f15[_0x629b('0x3f')]&&_0x410f15[_0x629b('0x3f')][_0x629b('0x40')]>0x0){var _0x56db8f=_[_0x629b('0x41')](_0x410f15[_0x629b('0x3f')][_0x629b('0x42')]);var _0x3d76a1={'messageId':_0x56db8f['message_id']};if(!_0x1f2ce5['deliveryReport']){_0x3d76a1[_0x629b('0x35')]=!![];}return _0x285683[_0x629b('0x10')](_0x3d76a1);}else{logger[_0x629b('0x14')](_0x629b('0x24'),_0x629b('0x22'),_0x629b('0x43'),util['inspect'](_0x410f15,{'showHidden':![],'depth':null}));}}else{logger[_0x629b('0x14')](_0x629b('0x24'),_0x629b('0x22'),_0x629b('0x43'),util[_0x629b('0x23')](_0x410f15,{'showHidden':![],'depth':null}));}})[_0x629b('0x13')](function(_0x1773e8){logger[_0x629b('0x14')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x629b('0x22'),_0x629b('0x43'),util['inspect'](_0x1773e8,{'showHidden':![],'depth':null}));});}else{logger[_0x629b('0x14')](_0x629b('0x24'),'afterCreate',_0x629b('0x43'),_0x629b('0x44'));}break;case _0x629b('0x45'):if(_0x1f2ce5[_0x629b('0x46')]&&_0x1f2ce5[_0x629b('0x1c')]){var _0x496331={'dst':_0x75664c[_0x629b('0x1d')],'text':_0x75664c['body'],'src':_0x1f2ce5[_0x629b('0x34')]||_0x1f2ce5['phone'],'url':_0x1f2ce5['remote']+_0x629b('0x1f')+_0x75664c['id']+_0x629b('0x20')+_0x1f2ce5['token']};var _0xf4c39d=util['format'](_0x629b('0x47'),_0x1f2ce5[_0x629b('0x46')],_0x1f2ce5[_0x629b('0x1c')]);var _0x5395f3={'method':_0x629b('0x2d'),'uri':util[_0x629b('0x39')](_0x629b('0x48'),_0x1f2ce5['authId']),'body':_0x496331,'headers':{'Authorization':util[_0x629b('0x39')](_0x629b('0x3c'),new Buffer(_0xf4c39d)[_0x629b('0x49')](_0x629b('0x3d')))},'json':!![]};rp(_0x5395f3)[_0x629b('0xf')](function(_0x41875f){var _0x1f68f1={'messageId':_0x41875f[_0x629b('0x4a')][0x0]};return _0x285683[_0x629b('0x10')](_0x1f68f1);})[_0x629b('0x13')](function(_0x356f55){logger[_0x629b('0x14')](_0x629b('0x24'),_0x629b('0x22'),'plivo',util['inspect'](_0x356f55,{'showHidden':![],'depth':null}));});}else{logger[_0x629b('0x14')](_0x629b('0x24'),_0x629b('0x22'),'plivo',_0x629b('0x4b'));}break;case _0x629b('0x4c'):if(_0x1f2ce5[_0x629b('0x28')]&&_0x1f2ce5[_0x629b('0x3a')]){if(_0x1f2ce5[_0x629b('0x4d')]){var _0x3c548a={'method':'POST','uri':_0x1f2ce5[_0x629b('0x4d')]+'/auth/1/session','body':{'username':_0x1f2ce5[_0x629b('0x28')],'password':_0x1f2ce5[_0x629b('0x3a')]},'json':!![]};return rp(_0x3c548a)[_0x629b('0xf')](function(_0x4568bf){var _0xf64f7d={'method':_0x629b('0x2d'),'uri':_0x1f2ce5[_0x629b('0x4d')]+_0x629b('0x4e'),'body':{'messages':[{'from':_0x1f2ce5[_0x629b('0x1d')],'destinations':[{'to':_0x75664c[_0x629b('0x1d')]}],'text':_0x75664c['body'],'notifyUrl':_0x1f2ce5[_0x629b('0x4f')]+'/api/sms/messages/'+_0x75664c['id']+_0x629b('0x20')+_0x1f2ce5[_0x629b('0x50')],'notifyContentType':'application/json','callbackData':_0x1f2ce5['phone']+';'+_0x75664c[_0x629b('0x12')]}]},'headers':{'Authorization':_0x629b('0x51')+_0x4568bf[_0x629b('0x50')]},'json':!![]};return rp(_0xf64f7d)[_0x629b('0xf')](function(_0x15e70d){if(_0x15e70d[_0x629b('0x42')]){var _0x1be91d={'messageId':_0x15e70d['messages'][0x0][_0x629b('0x52')]};if(!_0x1f2ce5[_0x629b('0x32')]){_0x1be91d[_0x629b('0x35')]=!![];}return _0x285683[_0x629b('0x10')](_0x1be91d);}else{return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x629b('0x22'),_0x629b('0x4c'),util[_0x629b('0x23')](_0x15e70d,{'showHidden':![],'depth':null}));}});})[_0x629b('0x13')](function(_0x255caa){return logger[_0x629b('0x14')](_0x629b('0x24'),'afterCreate','infobip',util['inspect'](_0x255caa,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x629b('0x24'),'afterCreate',_0x629b('0x4c'),_0x629b('0x53'));}}else{logger[_0x629b('0x14')](_0x629b('0x24'),'afterCreate','infobip','Missing\x20parameters:\x20username,\x20password');}break;case _0x629b('0x54'):var _0x2a2dca=require(_0x629b('0x55'));if(_0x1f2ce5['apiKey']){var _0x5c663b={};_0x5c663b[_0x629b('0x56')]=_0x1f2ce5[_0x629b('0x28')];_0x5c663b[_0x629b('0x1d')]=_0x75664c['phone'];_0x5c663b[_0x629b('0x57')]=_0x1f2ce5['phone'];_0x5c663b['text']=_0x75664c['body'];_0x5c663b['timestamp']=+new Date();var _0x5b8f98='';var _0x36d7a8='';var _0x491e55=Object[_0x629b('0x58')](_0x5c663b);_0x491e55[_0x629b('0x59')]();for(var _0x537855=0x0;_0x537855<_0x491e55[_0x629b('0x5a')];_0x537855++){if(_0x5b8f98!=''){_0x5b8f98+='&';}_0x5b8f98+=_0x491e55[_0x537855]+'='+encodeURIComponent(_0x5c663b[_0x491e55[_0x537855]]);_0x36d7a8+=_0x5c663b[_0x491e55[_0x537855]];}_0x36d7a8+=_0x1f2ce5[_0x629b('0x5b')];_0x36d7a8=_0x2a2dca[_0x629b('0x5c')](_0x629b('0x5d'))['update'](_0x36d7a8)[_0x629b('0x5e')]('hex');if(_0x5b8f98!==''){_0x5b8f98+='&';}_0x5b8f98+=_0x629b('0x5f')+_0x36d7a8;var _0x5aea9e={'method':_0x629b('0x60'),'uri':_0x629b('0x61')+_0x5b8f98,'json':!![]};return rp(_0x5aea9e)[_0x629b('0xf')](function(_0x595a16){var _0xacf45b=Object['keys'](_0x595a16);if(_0x595a16[_0xacf45b[0x0]][_0x629b('0x14')]&&parseInt(_0x595a16[_0xacf45b[0x0]][_0x629b('0x14')])===0x0){var _0x1468a5={'messageId':_0x595a16[_0xacf45b[0x0]]['id_sms']};if(!_0x1f2ce5[_0x629b('0x32')]){_0x1468a5[_0x629b('0x35')]=!![];}return _0x285683[_0x629b('0x10')](_0x1468a5);}else{return logger[_0x629b('0x14')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x629b('0x54'),util[_0x629b('0x23')](_0x595a16[_0x629b('0x14')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x541a2a){return logger[_0x629b('0x14')](_0x629b('0x24'),_0x629b('0x22'),_0x629b('0x54'),util[_0x629b('0x23')](_0x541a2a,{'showHidden':![],'depth':null}));});}else{logger[_0x629b('0x14')](_0x629b('0x24'),_0x629b('0x22'),_0x629b('0x54'),'Missing\x20parameters:\x20apiKey');}break;case _0x629b('0x62'):if(_0x1f2ce5[_0x629b('0x5b')]){var _0x47a4d1={'method':_0x629b('0x2d'),'uri':'https://platform.clickatell.com/messages','headers':{'Authorization':_0x1f2ce5[_0x629b('0x5b')]},'body':{'content':_0x75664c[_0x629b('0x12')],'to':[_0x75664c[_0x629b('0x1d')]],'from':_0x1f2ce5[_0x629b('0x1d')],'binary':![],'clientMessageId':_0x629b('0x63'),'charset':_0x629b('0x64')},'json':!![]};rp(_0x47a4d1)[_0x629b('0xf')](function(_0x16860c){if(!_0x16860c['error']){var _0x244245={'messageId':_0x16860c['messages'][0x0][_0x629b('0x65')]};if(!_0x1f2ce5[_0x629b('0x32')]){_0x244245['read']=!![];}return _0x285683[_0x629b('0x10')](_0x244245);}else{return logger[_0x629b('0x14')](_0x629b('0x24'),_0x629b('0x22'),_0x629b('0x62'),util['inspect'](_0x16860c[_0x629b('0x14')],{'showHidden':![],'depth':null}));}})[_0x629b('0x13')](function(_0x4ee573){return logger[_0x629b('0x14')](_0x629b('0x24'),'afterCreate',_0x629b('0x62'),util[_0x629b('0x23')](_0x4ee573,{'showHidden':![],'depth':null}));});}else{logger[_0x629b('0x14')](_0x629b('0x24'),_0x629b('0x22'),_0x629b('0x62'),'Missing\x20parameters:\x20apiKey');}break;case _0x629b('0x66'):if(_0x1f2ce5[_0x629b('0x5b')]){var _0x488431={};var _0x5aea9e={'method':_0x629b('0x2d'),'uri':_0x629b('0x67'),'headers':{'Authorization':_0x629b('0x68')+_0x1f2ce5[_0x629b('0x5b')],'Content-Type':_0x629b('0x69')},'body':{'from':_0x1f2ce5['phone'],'to':_0x75664c[_0x629b('0x1d')],'text':_0x75664c[_0x629b('0x12')]},'json':!![]};return rp(_0x5aea9e)[_0x629b('0xf')](function(_0x38cd36){if(_0x38cd36[_0x629b('0x6a')]==0xca){_0x488431[_0x629b('0x6b')]=_0x38cd36;var _0x15c9f4={'method':_0x629b('0x2d'),'uri':'https://api.intelepeer.com/_rest/v4/app/sms/mdr','headers':{'Authorization':_0x629b('0x68')+_0x1f2ce5[_0x629b('0x5b')],'Content-Type':_0x629b('0x69')},'body':{'refid':_0x488431[_0x629b('0x6b')][_0x629b('0x6c')]},'json':!![]};return rp(_0x15c9f4)['then'](function(_0x203cab){_0x488431['status']=_0x203cab;var _0x5b19a9={'messageId':_0x488431['message'][_0x629b('0x6c')],'read':!![]};return _0x285683['update'](_0x5b19a9);});}else{return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x629b('0x22'),_0x629b('0x66'),util[_0x629b('0x23')](_0x38cd36,{'showHidden':![],'depth':null}));}})['catch'](function(_0x45161a){return logger['error'](_0x629b('0x24'),_0x629b('0x22'),_0x629b('0x66'),util['inspect'](_0x45161a,{'showHidden':![],'depth':null}));});}else{return logger[_0x629b('0x14')](_0x629b('0x24'),_0x629b('0x22'),'intelepeer',_0x629b('0x6d'));}break;}}})[_0x629b('0x6e')](function(){_0xbd5f57();});}else{_0xbd5f57();}}},'charset':'utf8mb4','collate':_0x629b('0x6f')});};