Built motion from commit (unavailable).|2.5.14
[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 _0x2213=['update','error','SmsAccount','find','SmsAccountId','type','twilio','phone','authToken','messages','create','body','remote','/api/sms/messages/','token','sid','catch','inspect','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','https://api.skebby.it/API/v1.0/REST/','password','smsMethod','sender','login?username=','username','split','sms','POST','user_key','session_key','total_sent','internal_order_id','deliveryReport','read','connectel','senderString','https://smsapi.connectel.se/api/v2/send/','requestid','Missing\x20parameters:\x20authToken','xCALLY\x20Motion','%s:%s','https://rest.clicksend.com/v3/sms/send','format','Basic\x20%s','toString','base64','http_code','data','message_id','clickSend','Missing\x20parameters:\x20username,\x20password','/status?token=','https://api.plivo.com/v1/Account/%s/Message/','message_uuid','plivo','Missing\x20parameters:\x20authId,\x20authToken','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','infobip','apiKey','login','text','timestamp','keys','sort','length','createHash','md5','hex','GET','/external/get/send.php?','id_sms','csc','Missing\x20parameters:\x20apiKey','clickatell','https://platform.clickatell.com/messages','uuid','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','refid','status','finally','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./smsMessage.attributes','exports','define','SmsMessage','sms_messages','messageId','fti_sms_messages','models','direction','toLowerCase','out','secret','isNil','UserId','SmsInteraction','then'];(function(_0x34edca,_0x18d9eb){var _0x2e2bf3=function(_0x42f266){while(--_0x42f266){_0x34edca['push'](_0x34edca['shift']());}};_0x2e2bf3(++_0x18d9eb);}(_0x2213,0x150));var _0x3221=function(_0x330912,_0x45b260){_0x330912=_0x330912-0x0;var _0x31c674=_0x2213[_0x330912];return _0x31c674;};'use strict';var _=require(_0x3221('0x0'));var util=require('util');var logger=require(_0x3221('0x1'))(_0x3221('0x2'));var moment=require(_0x3221('0x3'));var BPromise=require('bluebird');var rp=require(_0x3221('0x4'));var fs=require('fs');var path=require(_0x3221('0x5'));var rimraf=require(_0x3221('0x6'));var config=require(_0x3221('0x7'));var attributes=require(_0x3221('0x8'));module[_0x3221('0x9')]=function(_0x2c65ad,_0x3f4479){return _0x2c65ad[_0x3221('0xa')](_0x3221('0xb'),attributes,{'tableName':_0x3221('0xc'),'paranoid':![],'indexes':[{'name':_0x3221('0xd'),'fields':[_0x3221('0xd')]},{'name':_0x3221('0xe'),'fields':['body'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3667ba,_0x5c92f1,_0x22f49e){var _0x5880c9=_0x2c65ad[_0x3221('0xf')];var _0x3fac25=_0x3667ba['get']({'plain':!![]});if(_0x3fac25[_0x3221('0x10')][_0x3221('0x11')]()==='in'||_0x3fac25['direction'][_0x3221('0x11')]()===_0x3221('0x12')&&!_0x3fac25[_0x3221('0x13')]&&!_[_0x3221('0x14')](_0x3fac25[_0x3221('0x15')])){_0x5880c9[_0x3221('0x16')]['findOne']({'where':{'id':_0x3fac25['SmsInteractionId']}})[_0x3221('0x17')](function(_0x271186){if(_0x271186){_0x271186[_0x3221('0x18')]({'lastMsgAt':_0x3fac25['createdAt'],'lastMsgDirection':_0x3fac25['direction'][_0x3221('0x11')]()});}})['catch'](function(_0x294340){console[_0x3221('0x19')](_0x294340);});}if(_0x3fac25['direction']==='out'&&!_0x3fac25['secret']){var _0x1c79fb;_0x5880c9[_0x3221('0x1a')][_0x3221('0x1b')]({'where':{'id':_0x3fac25[_0x3221('0x1c')]},'raw':!![]})[_0x3221('0x17')](function(_0x1cbbef){_0x1c79fb=_0x1cbbef;if(_0x1c79fb&&_0x1c79fb[_0x3221('0x1d')]){switch(_0x1c79fb['type']){case _0x3221('0x1e'):var _0x27374c=require('twilio');if(_0x1c79fb['accountSid']&&_0x1c79fb['authToken']&&_0x1c79fb[_0x3221('0x1f')]){var _0x5c6875=new _0x27374c(_0x1c79fb['accountSid'],_0x1c79fb[_0x3221('0x20')]);_0x5c6875[_0x3221('0x21')][_0x3221('0x22')]({'body':_0x3fac25[_0x3221('0x23')],'to':_0x3fac25['phone'],'from':_0x1c79fb[_0x3221('0x1f')],'statusCallback':_0x1c79fb[_0x3221('0x24')]+_0x3221('0x25')+_0x3fac25['id']+'/status?token='+_0x1c79fb[_0x3221('0x26')]})[_0x3221('0x17')](function(_0x7f7c75){if(_0x7f7c75[_0x3221('0x27')]){return _0x3667ba['update']({'messageId':_0x7f7c75[_0x3221('0x27')]});}})[_0x3221('0x28')](function(_0x588063){logger[_0x3221('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x3221('0x1e'),util[_0x3221('0x29')](_0x588063,{'showHidden':![],'depth':null}));});}else{logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),_0x3221('0x1e'),_0x3221('0x2c'));}break;case _0x3221('0x2d'):var _0x3ca44f=_0x3221('0x2e');if(_0x1c79fb['username']&&_0x1c79fb[_0x3221('0x2f')]){var _0x24cbb5={'recipient':[_0x3fac25[_0x3221('0x1f')]],'message':_0x3fac25[_0x3221('0x23')],'message_type':_0x1c79fb[_0x3221('0x30')]};if(_0x1c79fb[_0x3221('0x30')]&&_0x1c79fb[_0x3221('0x30')]!=='SI'){_0x24cbb5[_0x3221('0x31')]=_0x1c79fb[_0x3221('0x1f')];}var _0x5924c5={'url':_0x3ca44f+_0x3221('0x32')+_0x1c79fb[_0x3221('0x33')]+'&password='+_0x1c79fb[_0x3221('0x2f')],'method':'GET'};rp(_0x5924c5)[_0x3221('0x17')](function(_0x3f6ea9){var _0x198958=_0x3f6ea9[_0x3221('0x34')](';');var _0x5706fa={'user_key':_0x198958[0x0],'session_key':_0x198958[0x1]};_0x5924c5={'url':_0x3ca44f+_0x3221('0x35'),'method':_0x3221('0x36'),'headers':{'user_key':_0x5706fa[_0x3221('0x37')],'Session_key':_0x5706fa[_0x3221('0x38')]},'json':!![],'body':_0x24cbb5};return rp(_0x5924c5);})[_0x3221('0x17')](function(_0x339dae){if(_0x339dae[_0x3221('0x39')]>=0x1){var _0x4cb7d3={'messageId':_0x339dae[_0x3221('0x3a')]};if(_0x1c79fb[_0x3221('0x30')]!=='GP'||!_0x1c79fb[_0x3221('0x3b')]){_0x4cb7d3[_0x3221('0x3c')]=!![];}return _0x3667ba[_0x3221('0x18')](_0x4cb7d3);}else{return logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),_0x3221('0x2d'),util[_0x3221('0x29')](_0x339dae,{'showHidden':![],'depth':null}));}})['catch'](function(_0x1e2db5){return logger['error'](_0x3221('0x2a'),_0x3221('0x2b'),_0x3221('0x2d'),util[_0x3221('0x29')](_0x1e2db5,{'showHidden':![],'depth':null}));});}else{logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),'skebby','Missing\x20parameters:\x20username,\x20password');}break;case _0x3221('0x3d'):if(_0x1c79fb[_0x3221('0x20')]){var _0x4d857f={'recipient':_0x3fac25['phone'],'message':_0x3fac25[_0x3221('0x23')],'sender':_0x1c79fb[_0x3221('0x3e')]||_0x1c79fb[_0x3221('0x1f')],'authorization':_0x1c79fb[_0x3221('0x20')]};var _0x5c92f1={'method':_0x3221('0x36'),'uri':_0x3221('0x3f'),'body':_0x4d857f,'json':!![]};rp(_0x5c92f1)['then'](function(_0x1b74c1){var _0x10242d={'messageId':_0x1b74c1[_0x3221('0x40')]};if(!_0x1c79fb[_0x3221('0x3b')]){_0x10242d['read']=!![];}return _0x3667ba['update'](_0x10242d);})['catch'](function(_0x2adc5d){logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),_0x3221('0x3d'),util['inspect'](_0x2adc5d,{'showHidden':![],'depth':null}));});}else{logger[_0x3221('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x3221('0x2b'),_0x3221('0x3d'),_0x3221('0x41'));}break;case'clicksend':if(_0x1c79fb['username']&&_0x1c79fb[_0x3221('0x2f')]){var _0x4d857f={'messages':[{'source':_0x3221('0x42'),'to':_0x3fac25[_0x3221('0x1f')],'body':_0x3fac25[_0x3221('0x23')],'from':_0x1c79fb[_0x3221('0x3e')]||_0x1c79fb[_0x3221('0x1f')]}]};var _0x48ec43=util['format'](_0x3221('0x43'),_0x1c79fb[_0x3221('0x33')],_0x1c79fb[_0x3221('0x2f')]);var _0x5c92f1={'method':_0x3221('0x36'),'uri':_0x3221('0x44'),'body':_0x4d857f,'headers':{'Authorization':util[_0x3221('0x45')](_0x3221('0x46'),new Buffer(_0x48ec43)[_0x3221('0x47')](_0x3221('0x48')))},'json':!![]};rp(_0x5c92f1)[_0x3221('0x17')](function(_0x44a5ed){if(_0x44a5ed['http_code']>=0xc8&&_0x44a5ed[_0x3221('0x49')]<=0xce){if(_0x44a5ed['data']&&_0x44a5ed[_0x3221('0x4a')]['queued_count']>0x0){var _0x866ace=_['head'](_0x44a5ed['data'][_0x3221('0x21')]);var _0x2ddd63={'messageId':_0x866ace[_0x3221('0x4b')]};if(!_0x1c79fb[_0x3221('0x3b')]){_0x2ddd63[_0x3221('0x3c')]=!![];}return _0x3667ba['update'](_0x2ddd63);}else{logger[_0x3221('0x19')](_0x3221('0x2a'),'afterCreate','clickSend',util['inspect'](_0x44a5ed,{'showHidden':![],'depth':null}));}}else{logger['error'](_0x3221('0x2a'),_0x3221('0x2b'),_0x3221('0x4c'),util[_0x3221('0x29')](_0x44a5ed,{'showHidden':![],'depth':null}));}})['catch'](function(_0x29e032){logger[_0x3221('0x19')](_0x3221('0x2a'),'afterCreate',_0x3221('0x4c'),util[_0x3221('0x29')](_0x29e032,{'showHidden':![],'depth':null}));});}else{logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),'clickSend',_0x3221('0x4d'));}break;case'plivo':if(_0x1c79fb['authId']&&_0x1c79fb[_0x3221('0x20')]){var _0x4d857f={'dst':_0x3fac25[_0x3221('0x1f')],'text':_0x3fac25[_0x3221('0x23')],'src':_0x1c79fb[_0x3221('0x3e')]||_0x1c79fb[_0x3221('0x1f')],'url':_0x1c79fb['remote']+_0x3221('0x25')+_0x3fac25['id']+_0x3221('0x4e')+_0x1c79fb[_0x3221('0x26')]};var _0x48ec43=util[_0x3221('0x45')](_0x3221('0x43'),_0x1c79fb['authId'],_0x1c79fb[_0x3221('0x20')]);var _0x5c92f1={'method':_0x3221('0x36'),'uri':util[_0x3221('0x45')](_0x3221('0x4f'),_0x1c79fb['authId']),'body':_0x4d857f,'headers':{'Authorization':util[_0x3221('0x45')](_0x3221('0x46'),new Buffer(_0x48ec43)[_0x3221('0x47')](_0x3221('0x48')))},'json':!![]};rp(_0x5c92f1)[_0x3221('0x17')](function(_0x210895){var _0x408c6d={'messageId':_0x210895[_0x3221('0x50')][0x0]};return _0x3667ba['update'](_0x408c6d);})[_0x3221('0x28')](function(_0x3e7d19){logger['error'](_0x3221('0x2a'),'afterCreate',_0x3221('0x51'),util[_0x3221('0x29')](_0x3e7d19,{'showHidden':![],'depth':null}));});}else{logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),_0x3221('0x51'),_0x3221('0x52'));}break;case'infobip':if(_0x1c79fb[_0x3221('0x33')]&&_0x1c79fb[_0x3221('0x2f')]){if(_0x1c79fb[_0x3221('0x53')]){var _0x4446b6={'method':_0x3221('0x36'),'uri':_0x1c79fb['baseUrl']+_0x3221('0x54'),'body':{'username':_0x1c79fb[_0x3221('0x33')],'password':_0x1c79fb[_0x3221('0x2f')]},'json':!![]};return rp(_0x4446b6)[_0x3221('0x17')](function(_0x34d982){var _0xb8dbfa={'method':_0x3221('0x36'),'uri':_0x1c79fb[_0x3221('0x53')]+_0x3221('0x55'),'body':{'messages':[{'from':_0x1c79fb[_0x3221('0x1f')],'destinations':[{'to':_0x3fac25[_0x3221('0x1f')]}],'text':_0x3fac25[_0x3221('0x23')],'notifyUrl':_0x1c79fb[_0x3221('0x24')]+_0x3221('0x25')+_0x3fac25['id']+_0x3221('0x4e')+_0x1c79fb[_0x3221('0x26')],'notifyContentType':_0x3221('0x56'),'callbackData':_0x1c79fb[_0x3221('0x1f')]+';'+_0x3fac25[_0x3221('0x23')]}]},'headers':{'Authorization':_0x3221('0x57')+_0x34d982[_0x3221('0x26')]},'json':!![]};return rp(_0xb8dbfa)[_0x3221('0x17')](function(_0x1db458){if(_0x1db458[_0x3221('0x21')]){var _0x159987={'messageId':_0x1db458[_0x3221('0x21')][0x0][_0x3221('0xd')]};if(!_0x1c79fb['deliveryReport']){_0x159987[_0x3221('0x3c')]=!![];}return _0x3667ba[_0x3221('0x18')](_0x159987);}else{return logger['error'](_0x3221('0x2a'),'afterCreate',_0x3221('0x58'),util[_0x3221('0x29')](_0x1db458,{'showHidden':![],'depth':null}));}});})[_0x3221('0x28')](function(_0x4a5fac){return logger['error'](_0x3221('0x2a'),_0x3221('0x2b'),'infobip',util[_0x3221('0x29')](_0x4a5fac,{'showHidden':![],'depth':null}));});}else{logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),_0x3221('0x58'),'Missing\x20parameters:\x20base_url');}}else{logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),'infobip',_0x3221('0x4d'));}break;case'csc':var _0x55adff=require('crypto');if(_0x1c79fb[_0x3221('0x59')]){var _0x35f60d={};_0x35f60d[_0x3221('0x5a')]=_0x1c79fb[_0x3221('0x33')];_0x35f60d[_0x3221('0x1f')]=_0x3fac25[_0x3221('0x1f')];_0x35f60d['sender']=_0x1c79fb[_0x3221('0x1f')];_0x35f60d[_0x3221('0x5b')]=_0x3fac25[_0x3221('0x23')];_0x35f60d[_0x3221('0x5c')]=+new Date();var _0x1d0a11='';var _0x1feb28='';var _0x215c16=Object[_0x3221('0x5d')](_0x35f60d);_0x215c16[_0x3221('0x5e')]();for(var _0x4e0fc9=0x0;_0x4e0fc9<_0x215c16[_0x3221('0x5f')];_0x4e0fc9++){if(_0x1d0a11!=''){_0x1d0a11+='&';}_0x1d0a11+=_0x215c16[_0x4e0fc9]+'='+encodeURIComponent(_0x35f60d[_0x215c16[_0x4e0fc9]]);_0x1feb28+=_0x35f60d[_0x215c16[_0x4e0fc9]];}_0x1feb28+=_0x1c79fb[_0x3221('0x59')];_0x1feb28=_0x55adff[_0x3221('0x60')](_0x3221('0x61'))['update'](_0x1feb28)['digest'](_0x3221('0x62'));if(_0x1d0a11!==''){_0x1d0a11+='&';}_0x1d0a11+='signature='+_0x1feb28;var _0x5924c5={'method':_0x3221('0x63'),'uri':_0x1c79fb[_0x3221('0x53')]+_0x3221('0x64')+_0x1d0a11,'json':!![]};return rp(_0x5924c5)['then'](function(_0x42b19e){var _0x866c13=Object[_0x3221('0x5d')](_0x42b19e);if(_0x42b19e[_0x866c13[0x0]][_0x3221('0x19')]&&parseInt(_0x42b19e[_0x866c13[0x0]][_0x3221('0x19')])===0x0){var _0x545185={'messageId':_0x42b19e[_0x866c13[0x0]][_0x3221('0x65')]};if(!_0x1c79fb[_0x3221('0x3b')]){_0x545185[_0x3221('0x3c')]=!![];}return _0x3667ba['update'](_0x545185);}else{return logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),'csc',util[_0x3221('0x29')](_0x42b19e[_0x3221('0x19')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x2a21fb){return logger[_0x3221('0x19')](_0x3221('0x2a'),'afterCreate',_0x3221('0x66'),util[_0x3221('0x29')](_0x2a21fb,{'showHidden':![],'depth':null}));});}else{logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),_0x3221('0x66'),_0x3221('0x67'));}break;case _0x3221('0x68'):if(_0x1c79fb[_0x3221('0x59')]){var _0x369800={'method':'POST','uri':_0x3221('0x69'),'headers':{'Authorization':_0x1c79fb['apiKey']},'body':{'content':_0x3fac25[_0x3221('0x23')],'to':[_0x3fac25['phone']],'from':_0x1c79fb[_0x3221('0x1f')],'binary':![],'clientMessageId':_0x3221('0x6a'),'charset':_0x3221('0x6b')},'json':!![]};rp(_0x369800)[_0x3221('0x17')](function(_0x1d4bf9){if(!_0x1d4bf9['error']){var _0x1169c3={'messageId':_0x1d4bf9[_0x3221('0x21')][0x0][_0x3221('0x6c')]};if(!_0x1c79fb[_0x3221('0x3b')]){_0x1169c3[_0x3221('0x3c')]=!![];}return _0x3667ba[_0x3221('0x18')](_0x1169c3);}else{return logger[_0x3221('0x19')](_0x3221('0x2a'),_0x3221('0x2b'),_0x3221('0x68'),util['inspect'](_0x1d4bf9[_0x3221('0x19')],{'showHidden':![],'depth':null}));}})[_0x3221('0x28')](function(_0x40c658){return logger['error'](_0x3221('0x2a'),_0x3221('0x2b'),_0x3221('0x68'),util[_0x3221('0x29')](_0x40c658,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x3221('0x2b'),_0x3221('0x68'),_0x3221('0x67'));}break;case _0x3221('0x6d'):if(_0x1c79fb[_0x3221('0x59')]){var _0x1edb3e={};var _0x5924c5={'method':_0x3221('0x36'),'uri':_0x3221('0x6e'),'headers':{'Authorization':_0x3221('0x6f')+_0x1c79fb[_0x3221('0x59')],'Content-Type':_0x3221('0x56')},'body':{'from':_0x1c79fb[_0x3221('0x1f')],'to':_0x3fac25[_0x3221('0x1f')],'text':_0x3fac25[_0x3221('0x23')]},'json':!![]};return rp(_0x5924c5)[_0x3221('0x17')](function(_0x85c86f){if(_0x85c86f[_0x3221('0x70')]==0xca){_0x1edb3e[_0x3221('0x71')]=_0x85c86f;var _0x300a30={'method':_0x3221('0x36'),'uri':_0x3221('0x72'),'headers':{'Authorization':_0x3221('0x6f')+_0x1c79fb[_0x3221('0x59')],'Content-Type':'application/json'},'body':{'refid':_0x1edb3e[_0x3221('0x71')][_0x3221('0x73')]},'json':!![]};return rp(_0x300a30)['then'](function(_0x20cf7d){_0x1edb3e[_0x3221('0x74')]=_0x20cf7d;var _0x208a92={'messageId':_0x1edb3e['message'][_0x3221('0x73')],'read':!![]};return _0x3667ba[_0x3221('0x18')](_0x208a92);});}else{return logger[_0x3221('0x19')](_0x3221('0x2a'),'afterCreate',_0x3221('0x6d'),util['inspect'](_0x85c86f,{'showHidden':![],'depth':null}));}})[_0x3221('0x28')](function(_0x367aa4){return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x3221('0x2b'),_0x3221('0x6d'),util[_0x3221('0x29')](_0x367aa4,{'showHidden':![],'depth':null}));});}else{return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','intelepeer','Token\x20not\x20received');}break;}}})[_0x3221('0x75')](function(){_0x22f49e();});}else{_0x22f49e();}}},'charset':_0x3221('0x76'),'collate':_0x3221('0x77')});};