dfb876fac0e7137f7c828f3db4bc30ebdbd17465
[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 _0xa210=['toLowerCase','direction','out','secret','isNil','UserId','findOne','SmsInteractionId','then','update','createdAt','catch','error','SmsAccountId','twilio','accountSid','authToken','messages','create','body','phone','/api/sms/messages/','/status?token=','token','sid','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','smsMethod','login?username=','username','&password=','password','GET','split','POST','total_sent','internal_order_id','skebby','Missing\x20parameters:\x20username,\x20password','senderString','requestid','read','connectel','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','Basic\x20%s','base64','http_code','data','head','message_id','clickSend','plivo','authId','remote','https://api.plivo.com/v1/Account/%s/Message/','toString','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','application/json','IBSSO\x20','csc','crypto','apiKey','login','sender','text','timestamp','keys','sort','length','createHash','md5','hex','signature=','/external/get/send.php?','id_sms','deliveryReport','Missing\x20parameters:\x20apiKey','clickatell','uuid','UTF-8','apiMessageId','https://api.intelepeer.com/_rest/v4/app/sms/send','code','message','Bearer\x20','refid','intelepeer','Token\x20not\x20received','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./smsMessage.attributes','exports','sms_messages','messageId','fti_sms_messages','FULLTEXT'];(function(_0x1a326b,_0x2ebde2){var _0xc89714=function(_0x56db92){while(--_0x56db92){_0x1a326b['push'](_0x1a326b['shift']());}};_0xc89714(++_0x2ebde2);}(_0xa210,0x65));var _0x0a21=function(_0x1e88a1,_0x551011){_0x1e88a1=_0x1e88a1-0x0;var _0x2b6dea=_0xa210[_0x1e88a1];return _0x2b6dea;};'use strict';var _=require(_0x0a21('0x0'));var util=require(_0x0a21('0x1'));var logger=require('../../config/logger')(_0x0a21('0x2'));var moment=require(_0x0a21('0x3'));var BPromise=require(_0x0a21('0x4'));var rp=require(_0x0a21('0x5'));var fs=require('fs');var path=require(_0x0a21('0x6'));var rimraf=require(_0x0a21('0x7'));var config=require(_0x0a21('0x8'));var attributes=require(_0x0a21('0x9'));module[_0x0a21('0xa')]=function(_0x29af67,_0x586b05){return _0x29af67['define']('SmsMessage',attributes,{'tableName':_0x0a21('0xb'),'paranoid':![],'indexes':[{'name':_0x0a21('0xc'),'fields':['messageId']},{'name':_0x0a21('0xd'),'fields':['body'],'type':_0x0a21('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x21858a,_0x3f2380,_0x2bce1d){var _0x5334ad=_0x29af67['models'];var _0x5dd551=_0x21858a['get']({'plain':!![]});if(_0x5dd551['direction'][_0x0a21('0xf')]()==='in'||_0x5dd551[_0x0a21('0x10')][_0x0a21('0xf')]()===_0x0a21('0x11')&&!_0x5dd551[_0x0a21('0x12')]&&!_[_0x0a21('0x13')](_0x5dd551[_0x0a21('0x14')])){_0x5334ad['SmsInteraction'][_0x0a21('0x15')]({'where':{'id':_0x5dd551[_0x0a21('0x16')]}})[_0x0a21('0x17')](function(_0x4163e8){if(_0x4163e8){_0x4163e8[_0x0a21('0x18')]({'lastMsgAt':_0x5dd551[_0x0a21('0x19')],'lastMsgDirection':_0x5dd551[_0x0a21('0x10')][_0x0a21('0xf')]()});}})[_0x0a21('0x1a')](function(_0x278367){console[_0x0a21('0x1b')](_0x278367);});}if(_0x5dd551['direction']==='out'&&!_0x5dd551[_0x0a21('0x12')]){var _0x1483ce;_0x5334ad['SmsAccount']['find']({'where':{'id':_0x5dd551[_0x0a21('0x1c')]},'raw':!![]})[_0x0a21('0x17')](function(_0x16087c){_0x1483ce=_0x16087c;if(_0x1483ce&&_0x1483ce['type']){switch(_0x1483ce['type']){case'twilio':var _0x4f52c0=require(_0x0a21('0x1d'));if(_0x1483ce[_0x0a21('0x1e')]&&_0x1483ce[_0x0a21('0x1f')]&&_0x1483ce['phone']){var _0x35d508=new _0x4f52c0(_0x1483ce[_0x0a21('0x1e')],_0x1483ce[_0x0a21('0x1f')]);_0x35d508[_0x0a21('0x20')][_0x0a21('0x21')]({'body':_0x5dd551[_0x0a21('0x22')],'to':_0x5dd551[_0x0a21('0x23')],'from':_0x1483ce[_0x0a21('0x23')],'statusCallback':_0x1483ce['remote']+_0x0a21('0x24')+_0x5dd551['id']+_0x0a21('0x25')+_0x1483ce[_0x0a21('0x26')]})['then'](function(_0x4d85a0){if(_0x4d85a0[_0x0a21('0x27')]){return _0x21858a[_0x0a21('0x18')]({'messageId':_0x4d85a0[_0x0a21('0x27')]});}})['catch'](function(_0x18043f){logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),'twilio',util[_0x0a21('0x2a')](_0x18043f,{'showHidden':![],'depth':null}));});}else{logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),_0x0a21('0x1d'),_0x0a21('0x2b'));}break;case'skebby':var _0x29e661='https://api.skebby.it/API/v1.0/REST/';if(_0x1483ce['username']&&_0x1483ce['password']){var _0xdea710={'recipient':[_0x5dd551[_0x0a21('0x23')]],'message':_0x5dd551[_0x0a21('0x22')],'message_type':_0x1483ce[_0x0a21('0x2c')]};if(_0x1483ce[_0x0a21('0x2c')]&&_0x1483ce[_0x0a21('0x2c')]!=='SI'){_0xdea710['sender']=_0x1483ce[_0x0a21('0x23')];}var _0x31206c={'url':_0x29e661+_0x0a21('0x2d')+_0x1483ce[_0x0a21('0x2e')]+_0x0a21('0x2f')+_0x1483ce[_0x0a21('0x30')],'method':_0x0a21('0x31')};rp(_0x31206c)[_0x0a21('0x17')](function(_0x578b2e){var _0x455572=_0x578b2e[_0x0a21('0x32')](';');var _0x57fe9f={'user_key':_0x455572[0x0],'session_key':_0x455572[0x1]};_0x31206c={'url':_0x29e661+'sms','method':_0x0a21('0x33'),'headers':{'user_key':_0x57fe9f['user_key'],'Session_key':_0x57fe9f['session_key']},'json':!![],'body':_0xdea710};return rp(_0x31206c);})[_0x0a21('0x17')](function(_0x511208){if(_0x511208[_0x0a21('0x34')]>=0x1){var _0xf1a26a={'messageId':_0x511208[_0x0a21('0x35')]};if(_0x1483ce['smsMethod']!=='GP'||!_0x1483ce['deliveryReport']){_0xf1a26a['read']=!![];}return _0x21858a[_0x0a21('0x18')](_0xf1a26a);}else{return logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),'skebby',util[_0x0a21('0x2a')](_0x511208,{'showHidden':![],'depth':null}));}})['catch'](function(_0x182039){return logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),_0x0a21('0x36'),util[_0x0a21('0x2a')](_0x182039,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x0a21('0x28'),_0x0a21('0x29'),_0x0a21('0x36'),_0x0a21('0x37'));}break;case'connectel':if(_0x1483ce[_0x0a21('0x1f')]){var _0x58f6be={'recipient':_0x5dd551[_0x0a21('0x23')],'message':_0x5dd551[_0x0a21('0x22')],'sender':_0x1483ce[_0x0a21('0x38')]||_0x1483ce[_0x0a21('0x23')],'authorization':_0x1483ce[_0x0a21('0x1f')]};var _0x3f2380={'method':_0x0a21('0x33'),'uri':'https://smsapi.connectel.se/api/send/','body':_0x58f6be,'json':!![]};rp(_0x3f2380)[_0x0a21('0x17')](function(_0x12cb7b){var _0x561799={'messageId':_0x12cb7b[_0x0a21('0x39')]};if(!_0x1483ce['deliveryReport']){_0x561799[_0x0a21('0x3a')]=!![];}return _0x21858a[_0x0a21('0x18')](_0x561799);})[_0x0a21('0x1a')](function(_0xd7a0ee){logger[_0x0a21('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x0a21('0x3b'),util[_0x0a21('0x2a')](_0xd7a0ee,{'showHidden':![],'depth':null}));});}else{logger[_0x0a21('0x1b')](_0x0a21('0x28'),'afterCreate',_0x0a21('0x3b'),_0x0a21('0x3c'));}break;case _0x0a21('0x3d'):if(_0x1483ce[_0x0a21('0x2e')]&&_0x1483ce['password']){var _0x58f6be={'messages':[{'source':_0x0a21('0x3e'),'to':_0x5dd551[_0x0a21('0x23')],'body':_0x5dd551['body'],'from':_0x1483ce[_0x0a21('0x38')]||_0x1483ce[_0x0a21('0x23')]}]};var _0x47ab47=util[_0x0a21('0x3f')](_0x0a21('0x40'),_0x1483ce[_0x0a21('0x2e')],_0x1483ce[_0x0a21('0x30')]);var _0x3f2380={'method':_0x0a21('0x33'),'uri':'https://rest.clicksend.com/v3/sms/send','body':_0x58f6be,'headers':{'Authorization':util[_0x0a21('0x3f')](_0x0a21('0x41'),new Buffer(_0x47ab47)['toString'](_0x0a21('0x42')))},'json':!![]};rp(_0x3f2380)[_0x0a21('0x17')](function(_0x13c97b){if(_0x13c97b['http_code']>=0xc8&&_0x13c97b[_0x0a21('0x43')]<=0xce){if(_0x13c97b['data']&&_0x13c97b[_0x0a21('0x44')]['queued_count']>0x0){var _0x595388=_[_0x0a21('0x45')](_0x13c97b['data'][_0x0a21('0x20')]);var _0x114fd1={'messageId':_0x595388[_0x0a21('0x46')]};if(!_0x1483ce['deliveryReport']){_0x114fd1[_0x0a21('0x3a')]=!![];}return _0x21858a[_0x0a21('0x18')](_0x114fd1);}else{logger[_0x0a21('0x1b')](_0x0a21('0x28'),'afterCreate','clickSend',util[_0x0a21('0x2a')](_0x13c97b,{'showHidden':![],'depth':null}));}}else{logger['error'](_0x0a21('0x28'),'afterCreate','clickSend',util[_0x0a21('0x2a')](_0x13c97b,{'showHidden':![],'depth':null}));}})[_0x0a21('0x1a')](function(_0x5a9d73){logger['error'](_0x0a21('0x28'),_0x0a21('0x29'),'clickSend',util['inspect'](_0x5a9d73,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x0a21('0x47'),_0x0a21('0x37'));}break;case _0x0a21('0x48'):if(_0x1483ce[_0x0a21('0x49')]&&_0x1483ce[_0x0a21('0x1f')]){var _0x58f6be={'dst':_0x5dd551[_0x0a21('0x23')],'text':_0x5dd551['body'],'src':_0x1483ce[_0x0a21('0x38')]||_0x1483ce['phone'],'url':_0x1483ce[_0x0a21('0x4a')]+_0x0a21('0x24')+_0x5dd551['id']+'/status?token='+_0x1483ce['token']};var _0x47ab47=util['format'](_0x0a21('0x40'),_0x1483ce[_0x0a21('0x49')],_0x1483ce[_0x0a21('0x1f')]);var _0x3f2380={'method':_0x0a21('0x33'),'uri':util[_0x0a21('0x3f')](_0x0a21('0x4b'),_0x1483ce[_0x0a21('0x49')]),'body':_0x58f6be,'headers':{'Authorization':util['format'](_0x0a21('0x41'),new Buffer(_0x47ab47)[_0x0a21('0x4c')](_0x0a21('0x42')))},'json':!![]};rp(_0x3f2380)['then'](function(_0x105064){var _0x40f5ad={'messageId':_0x105064[_0x0a21('0x4d')][0x0]};return _0x21858a['update'](_0x40f5ad);})[_0x0a21('0x1a')](function(_0x2be9bf){logger[_0x0a21('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x0a21('0x48'),util['inspect'](_0x2be9bf,{'showHidden':![],'depth':null}));});}else{logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),_0x0a21('0x48'),_0x0a21('0x4e'));}break;case _0x0a21('0x4f'):if(_0x1483ce[_0x0a21('0x2e')]&&_0x1483ce[_0x0a21('0x30')]){if(_0x1483ce[_0x0a21('0x50')]){var _0x5eafd3={'method':_0x0a21('0x33'),'uri':_0x1483ce['baseUrl']+_0x0a21('0x51'),'body':{'username':_0x1483ce[_0x0a21('0x2e')],'password':_0x1483ce[_0x0a21('0x30')]},'json':!![]};return rp(_0x5eafd3)['then'](function(_0xaa70fc){var _0x32e1c2={'method':_0x0a21('0x33'),'uri':_0x1483ce[_0x0a21('0x50')]+'/sms/2/text/advanced','body':{'messages':[{'from':_0x1483ce[_0x0a21('0x23')],'destinations':[{'to':_0x5dd551[_0x0a21('0x23')]}],'text':_0x5dd551[_0x0a21('0x22')],'notifyUrl':_0x1483ce[_0x0a21('0x4a')]+_0x0a21('0x24')+_0x5dd551['id']+'/status?token='+_0x1483ce[_0x0a21('0x26')],'notifyContentType':_0x0a21('0x52'),'callbackData':_0x1483ce[_0x0a21('0x23')]+';'+_0x5dd551['body']}]},'headers':{'Authorization':_0x0a21('0x53')+_0xaa70fc[_0x0a21('0x26')]},'json':!![]};return rp(_0x32e1c2)[_0x0a21('0x17')](function(_0x1767d0){if(_0x1767d0[_0x0a21('0x20')]){var _0x3bd1e4={'messageId':_0x1767d0[_0x0a21('0x20')][0x0][_0x0a21('0xc')]};if(!_0x1483ce['deliveryReport']){_0x3bd1e4[_0x0a21('0x3a')]=!![];}return _0x21858a[_0x0a21('0x18')](_0x3bd1e4);}else{return logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),_0x0a21('0x4f'),util[_0x0a21('0x2a')](_0x1767d0,{'showHidden':![],'depth':null}));}});})[_0x0a21('0x1a')](function(_0x145a88){return logger['error'](_0x0a21('0x28'),'afterCreate',_0x0a21('0x4f'),util['inspect'](_0x145a88,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x0a21('0x28'),_0x0a21('0x29'),_0x0a21('0x4f'),'Missing\x20parameters:\x20base_url');}}else{logger[_0x0a21('0x1b')](_0x0a21('0x28'),'afterCreate',_0x0a21('0x4f'),_0x0a21('0x37'));}break;case _0x0a21('0x54'):var _0x4a9464=require(_0x0a21('0x55'));if(_0x1483ce[_0x0a21('0x56')]){var _0x2fe47d={};_0x2fe47d[_0x0a21('0x57')]=_0x1483ce[_0x0a21('0x2e')];_0x2fe47d['phone']=_0x5dd551['phone'];_0x2fe47d[_0x0a21('0x58')]=_0x1483ce[_0x0a21('0x23')];_0x2fe47d[_0x0a21('0x59')]=_0x5dd551[_0x0a21('0x22')];_0x2fe47d[_0x0a21('0x5a')]=+new Date();var _0x1c223c='';var _0x3611ad='';var _0x19e13e=Object[_0x0a21('0x5b')](_0x2fe47d);_0x19e13e[_0x0a21('0x5c')]();for(var _0x5abbf7=0x0;_0x5abbf7<_0x19e13e[_0x0a21('0x5d')];_0x5abbf7++){if(_0x1c223c!=''){_0x1c223c+='&';}_0x1c223c+=_0x19e13e[_0x5abbf7]+'='+encodeURIComponent(_0x2fe47d[_0x19e13e[_0x5abbf7]]);_0x3611ad+=_0x2fe47d[_0x19e13e[_0x5abbf7]];}_0x3611ad+=_0x1483ce['apiKey'];_0x3611ad=_0x4a9464[_0x0a21('0x5e')](_0x0a21('0x5f'))[_0x0a21('0x18')](_0x3611ad)['digest'](_0x0a21('0x60'));if(_0x1c223c!==''){_0x1c223c+='&';}_0x1c223c+=_0x0a21('0x61')+_0x3611ad;var _0x31206c={'method':_0x0a21('0x31'),'uri':_0x1483ce[_0x0a21('0x50')]+_0x0a21('0x62')+_0x1c223c,'json':!![]};return rp(_0x31206c)[_0x0a21('0x17')](function(_0x5878d0){var _0xe8d26c=Object[_0x0a21('0x5b')](_0x5878d0);if(_0x5878d0[_0xe8d26c[0x0]]['error']&&parseInt(_0x5878d0[_0xe8d26c[0x0]][_0x0a21('0x1b')])===0x0){var _0x4c13c3={'messageId':_0x5878d0[_0xe8d26c[0x0]][_0x0a21('0x63')]};if(!_0x1483ce[_0x0a21('0x64')]){_0x4c13c3['read']=!![];}return _0x21858a[_0x0a21('0x18')](_0x4c13c3);}else{return logger['error'](_0x0a21('0x28'),_0x0a21('0x29'),_0x0a21('0x54'),util[_0x0a21('0x2a')](_0x5878d0['error'],{'showHidden':![],'depth':null}));}})[_0x0a21('0x1a')](function(_0x594517){return logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),_0x0a21('0x54'),util[_0x0a21('0x2a')](_0x594517,{'showHidden':![],'depth':null}));});}else{logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),'csc',_0x0a21('0x65'));}break;case _0x0a21('0x66'):if(_0x1483ce[_0x0a21('0x56')]){var _0x35a919={'method':_0x0a21('0x33'),'uri':'https://platform.clickatell.com/messages','headers':{'Authorization':_0x1483ce[_0x0a21('0x56')]},'body':{'content':_0x5dd551['body'],'to':[_0x5dd551[_0x0a21('0x23')]],'from':_0x1483ce['phone'],'binary':![],'clientMessageId':_0x0a21('0x67'),'charset':_0x0a21('0x68')},'json':!![]};rp(_0x35a919)[_0x0a21('0x17')](function(_0x5813da){if(!_0x5813da[_0x0a21('0x1b')]){var _0x2f4cad={'messageId':_0x5813da[_0x0a21('0x20')][0x0][_0x0a21('0x69')]};if(!_0x1483ce['deliveryReport']){_0x2f4cad[_0x0a21('0x3a')]=!![];}return _0x21858a[_0x0a21('0x18')](_0x2f4cad);}else{return logger[_0x0a21('0x1b')](_0x0a21('0x28'),'afterCreate',_0x0a21('0x66'),util[_0x0a21('0x2a')](_0x5813da[_0x0a21('0x1b')],{'showHidden':![],'depth':null}));}})[_0x0a21('0x1a')](function(_0x46263a){return logger[_0x0a21('0x1b')](_0x0a21('0x28'),'afterCreate','clickatell',util[_0x0a21('0x2a')](_0x46263a,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x0a21('0x28'),_0x0a21('0x29'),'clickatell',_0x0a21('0x65'));}break;case'intelepeer':if(_0x1483ce[_0x0a21('0x56')]){var _0x260ef6={};var _0x31206c={'method':_0x0a21('0x33'),'uri':_0x0a21('0x6a'),'headers':{'Authorization':'Bearer\x20'+_0x1483ce[_0x0a21('0x56')],'Content-Type':_0x0a21('0x52')},'body':{'from':_0x1483ce['phone'],'to':_0x5dd551[_0x0a21('0x23')],'text':_0x5dd551[_0x0a21('0x22')]},'json':!![]};return rp(_0x31206c)[_0x0a21('0x17')](function(_0x22d0ce){if(_0x22d0ce[_0x0a21('0x6b')]==0xca){_0x260ef6[_0x0a21('0x6c')]=_0x22d0ce;var _0xcd9bd1={'method':_0x0a21('0x33'),'uri':'https://api.intelepeer.com/_rest/v4/app/sms/mdr','headers':{'Authorization':_0x0a21('0x6d')+_0x1483ce[_0x0a21('0x56')],'Content-Type':'application/json'},'body':{'refid':_0x260ef6['message'][_0x0a21('0x6e')]},'json':!![]};return rp(_0xcd9bd1)[_0x0a21('0x17')](function(_0x2a6500){_0x260ef6['status']=_0x2a6500;var _0xc0162e={'messageId':_0x260ef6['message']['refid'],'read':!![]};return _0x21858a[_0x0a21('0x18')](_0xc0162e);});}else{return logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),'intelepeer',util['inspect'](_0x22d0ce,{'showHidden':![],'depth':null}));}})[_0x0a21('0x1a')](function(_0xfecbe4){return logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),_0x0a21('0x6f'),util[_0x0a21('0x2a')](_0xfecbe4,{'showHidden':![],'depth':null}));});}else{return logger[_0x0a21('0x1b')](_0x0a21('0x28'),_0x0a21('0x29'),'intelepeer',_0x0a21('0x70'));}break;}}})[_0x0a21('0x71')](function(){_0x2bce1d();});}else{_0x2bce1d();}}},'charset':_0x0a21('0x72'),'collate':_0x0a21('0x73')});};