6293f8d11369916e6114c7902ee378441f736b28
[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 _0x4978=['format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','base64','http_code','data','head','message_id','clickSend','authId','token','plivo','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','deliveryReport','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','login','sender','text','keys','sort','length','createHash','md5','digest','hex','signature=','/external/get/send.php?','id_sms','Missing\x20parameters:\x20apiKey','clickatell','uuid','UTF-8','apiMessageId','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','refid','status','Token\x20not\x20received','finally','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./smsMessage.attributes','exports','define','SmsMessage','messageId','models','get','direction','toLowerCase','out','secret','isNil','UserId','findOne','SmsInteractionId','createdAt','catch','error','SmsAccount','find','SmsAccountId','then','type','twilio','accountSid','authToken','phone','messages','create','body','remote','/api/sms/messages/','/status?token=','sid','update','SmsMessage,\x20%s,\x20%s,\x20%s','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','https://api.skebby.it/API/v1.0/REST/','username','password','smsMethod','login?username=','&password=','GET','split','user_key','total_sent','internal_order_id','read','afterCreate','Missing\x20parameters:\x20username,\x20password','connectel','POST','requestid','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','senderString'];(function(_0x7a68b,_0x964789){var _0x110d37=function(_0x482401){while(--_0x482401){_0x7a68b['push'](_0x7a68b['shift']());}};_0x110d37(++_0x964789);}(_0x4978,0x12d));var _0x8497=function(_0x41aaa5,_0x5d880b){_0x41aaa5=_0x41aaa5-0x0;var _0x35c60f=_0x4978[_0x41aaa5];return _0x35c60f;};'use strict';var _=require('lodash');var util=require(_0x8497('0x0'));var logger=require(_0x8497('0x1'))(_0x8497('0x2'));var moment=require(_0x8497('0x3'));var BPromise=require('bluebird');var rp=require(_0x8497('0x4'));var fs=require('fs');var path=require(_0x8497('0x5'));var rimraf=require(_0x8497('0x6'));var config=require(_0x8497('0x7'));var attributes=require(_0x8497('0x8'));module[_0x8497('0x9')]=function(_0x1ab83c,_0x31501c){return _0x1ab83c[_0x8497('0xa')](_0x8497('0xb'),attributes,{'tableName':'sms_messages','paranoid':![],'indexes':[{'name':_0x8497('0xc'),'fields':[_0x8497('0xc')]},{'name':'fti_sms_messages','fields':['body'],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4266a3,_0x670e4a,_0x30496a){var _0x430e24=_0x1ab83c[_0x8497('0xd')];var _0x30e05a=_0x4266a3[_0x8497('0xe')]({'plain':!![]});if(_0x30e05a[_0x8497('0xf')]['toLowerCase']()==='in'||_0x30e05a[_0x8497('0xf')][_0x8497('0x10')]()===_0x8497('0x11')&&!_0x30e05a[_0x8497('0x12')]&&!_[_0x8497('0x13')](_0x30e05a[_0x8497('0x14')])){_0x430e24['SmsInteraction'][_0x8497('0x15')]({'where':{'id':_0x30e05a[_0x8497('0x16')]}})['then'](function(_0x2c8d5c){if(_0x2c8d5c){_0x2c8d5c['update']({'lastMsgAt':_0x30e05a[_0x8497('0x17')],'lastMsgDirection':_0x30e05a[_0x8497('0xf')][_0x8497('0x10')]()});}})[_0x8497('0x18')](function(_0x503583){console[_0x8497('0x19')](_0x503583);});}if(_0x30e05a[_0x8497('0xf')]===_0x8497('0x11')&&!_0x30e05a['secret']){var _0xe85054;_0x430e24[_0x8497('0x1a')][_0x8497('0x1b')]({'where':{'id':_0x30e05a[_0x8497('0x1c')]},'raw':!![]})[_0x8497('0x1d')](function(_0x3ceb16){_0xe85054=_0x3ceb16;if(_0xe85054&&_0xe85054[_0x8497('0x1e')]){switch(_0xe85054['type']){case _0x8497('0x1f'):var _0x21cc10=require('twilio');if(_0xe85054[_0x8497('0x20')]&&_0xe85054[_0x8497('0x21')]&&_0xe85054[_0x8497('0x22')]){var _0x30829f=new _0x21cc10(_0xe85054['accountSid'],_0xe85054[_0x8497('0x21')]);_0x30829f[_0x8497('0x23')][_0x8497('0x24')]({'body':_0x30e05a[_0x8497('0x25')],'to':_0x30e05a[_0x8497('0x22')],'from':_0xe85054['phone'],'statusCallback':_0xe85054[_0x8497('0x26')]+_0x8497('0x27')+_0x30e05a['id']+_0x8497('0x28')+_0xe85054['token']})[_0x8497('0x1d')](function(_0x269afc){if(_0x269afc[_0x8497('0x29')]){return _0x4266a3[_0x8497('0x2a')]({'messageId':_0x269afc[_0x8497('0x29')]});}})['catch'](function(_0x298f4f){logger[_0x8497('0x19')](_0x8497('0x2b'),'afterCreate',_0x8497('0x1f'),util[_0x8497('0x2c')](_0x298f4f,{'showHidden':![],'depth':null}));});}else{logger[_0x8497('0x19')](_0x8497('0x2b'),'afterCreate',_0x8497('0x1f'),_0x8497('0x2d'));}break;case _0x8497('0x2e'):var _0x10991b=_0x8497('0x2f');if(_0xe85054[_0x8497('0x30')]&&_0xe85054[_0x8497('0x31')]){var _0x33e538={'recipient':[_0x30e05a[_0x8497('0x22')]],'message':_0x30e05a[_0x8497('0x25')],'message_type':_0xe85054[_0x8497('0x32')]};if(_0xe85054['smsMethod']&&_0xe85054[_0x8497('0x32')]!=='SI'){_0x33e538['sender']=_0xe85054[_0x8497('0x22')];}var _0x478c15={'url':_0x10991b+_0x8497('0x33')+_0xe85054[_0x8497('0x30')]+_0x8497('0x34')+_0xe85054[_0x8497('0x31')],'method':_0x8497('0x35')};rp(_0x478c15)[_0x8497('0x1d')](function(_0x24fda2){var _0x40c1da=_0x24fda2[_0x8497('0x36')](';');var _0x17e73d={'user_key':_0x40c1da[0x0],'session_key':_0x40c1da[0x1]};_0x478c15={'url':_0x10991b+'sms','method':'POST','headers':{'user_key':_0x17e73d[_0x8497('0x37')],'Session_key':_0x17e73d['session_key']},'json':!![],'body':_0x33e538};return rp(_0x478c15);})[_0x8497('0x1d')](function(_0x1717a5){if(_0x1717a5[_0x8497('0x38')]>=0x1){var _0x5e254c={'messageId':_0x1717a5[_0x8497('0x39')]};if(_0xe85054[_0x8497('0x32')]!=='GP'||!_0xe85054['deliveryReport']){_0x5e254c[_0x8497('0x3a')]=!![];}return _0x4266a3[_0x8497('0x2a')](_0x5e254c);}else{return logger[_0x8497('0x19')](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x2e'),util['inspect'](_0x1717a5,{'showHidden':![],'depth':null}));}})['catch'](function(_0x2a1909){return logger['error'](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x2e'),util[_0x8497('0x2c')](_0x2a1909,{'showHidden':![],'depth':null}));});}else{logger[_0x8497('0x19')](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x2e'),_0x8497('0x3c'));}break;case _0x8497('0x3d'):if(_0xe85054['authToken']){var _0x58f143={'recipient':_0x30e05a['phone'],'message':_0x30e05a['body'],'sender':_0xe85054['senderString']||_0xe85054[_0x8497('0x22')],'authorization':_0xe85054[_0x8497('0x21')]};var _0x670e4a={'method':_0x8497('0x3e'),'uri':'https://smsapi.connectel.se/api/send/','body':_0x58f143,'json':!![]};rp(_0x670e4a)[_0x8497('0x1d')](function(_0x500334){var _0x1290f7={'messageId':_0x500334[_0x8497('0x3f')]};if(!_0xe85054['deliveryReport']){_0x1290f7[_0x8497('0x3a')]=!![];}return _0x4266a3[_0x8497('0x2a')](_0x1290f7);})[_0x8497('0x18')](function(_0x4cfc45){logger['error'](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x3d'),util['inspect'](_0x4cfc45,{'showHidden':![],'depth':null}));});}else{logger[_0x8497('0x19')](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x3d'),_0x8497('0x40'));}break;case _0x8497('0x41'):if(_0xe85054[_0x8497('0x30')]&&_0xe85054[_0x8497('0x31')]){var _0x58f143={'messages':[{'source':_0x8497('0x42'),'to':_0x30e05a[_0x8497('0x22')],'body':_0x30e05a['body'],'from':_0xe85054[_0x8497('0x43')]||_0xe85054[_0x8497('0x22')]}]};var _0x3a0b54=util[_0x8497('0x44')](_0x8497('0x45'),_0xe85054[_0x8497('0x30')],_0xe85054['password']);var _0x670e4a={'method':'POST','uri':_0x8497('0x46'),'body':_0x58f143,'headers':{'Authorization':util[_0x8497('0x44')](_0x8497('0x47'),new Buffer(_0x3a0b54)[_0x8497('0x48')](_0x8497('0x49')))},'json':!![]};rp(_0x670e4a)[_0x8497('0x1d')](function(_0x4376d1){if(_0x4376d1[_0x8497('0x4a')]>=0xc8&&_0x4376d1[_0x8497('0x4a')]<=0xce){if(_0x4376d1[_0x8497('0x4b')]&&_0x4376d1[_0x8497('0x4b')]['queued_count']>0x0){var _0x108417=_[_0x8497('0x4c')](_0x4376d1[_0x8497('0x4b')]['messages']);var _0x344b61={'messageId':_0x108417[_0x8497('0x4d')]};if(!_0xe85054['deliveryReport']){_0x344b61['read']=!![];}return _0x4266a3[_0x8497('0x2a')](_0x344b61);}else{logger[_0x8497('0x19')](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x4e'),util['inspect'](_0x4376d1,{'showHidden':![],'depth':null}));}}else{logger[_0x8497('0x19')](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x4e'),util[_0x8497('0x2c')](_0x4376d1,{'showHidden':![],'depth':null}));}})[_0x8497('0x18')](function(_0x43f24d){logger[_0x8497('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8497('0x3b'),_0x8497('0x4e'),util['inspect'](_0x43f24d,{'showHidden':![],'depth':null}));});}else{logger[_0x8497('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x8497('0x4e'),_0x8497('0x3c'));}break;case'plivo':if(_0xe85054[_0x8497('0x4f')]&&_0xe85054['authToken']){var _0x58f143={'dst':_0x30e05a[_0x8497('0x22')],'text':_0x30e05a['body'],'src':_0xe85054[_0x8497('0x43')]||_0xe85054[_0x8497('0x22')],'url':_0xe85054[_0x8497('0x26')]+_0x8497('0x27')+_0x30e05a['id']+_0x8497('0x28')+_0xe85054[_0x8497('0x50')]};var _0x3a0b54=util[_0x8497('0x44')](_0x8497('0x45'),_0xe85054[_0x8497('0x4f')],_0xe85054[_0x8497('0x21')]);var _0x670e4a={'method':'POST','uri':util[_0x8497('0x44')]('https://api.plivo.com/v1/Account/%s/Message/',_0xe85054[_0x8497('0x4f')]),'body':_0x58f143,'headers':{'Authorization':util[_0x8497('0x44')](_0x8497('0x47'),new Buffer(_0x3a0b54)['toString']('base64'))},'json':!![]};rp(_0x670e4a)[_0x8497('0x1d')](function(_0x55ca6a){var _0x16fbfb={'messageId':_0x55ca6a['message_uuid'][0x0]};return _0x4266a3[_0x8497('0x2a')](_0x16fbfb);})[_0x8497('0x18')](function(_0x7244dd){logger[_0x8497('0x19')](_0x8497('0x2b'),'afterCreate',_0x8497('0x51'),util[_0x8497('0x2c')](_0x7244dd,{'showHidden':![],'depth':null}));});}else{logger[_0x8497('0x19')](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x51'),_0x8497('0x52'));}break;case _0x8497('0x53'):if(_0xe85054['username']&&_0xe85054[_0x8497('0x31')]){if(_0xe85054[_0x8497('0x54')]){var _0x1a5886={'method':'POST','uri':_0xe85054[_0x8497('0x54')]+_0x8497('0x55'),'body':{'username':_0xe85054[_0x8497('0x30')],'password':_0xe85054[_0x8497('0x31')]},'json':!![]};return rp(_0x1a5886)[_0x8497('0x1d')](function(_0x5a28f3){var _0x117607={'method':_0x8497('0x3e'),'uri':_0xe85054['baseUrl']+_0x8497('0x56'),'body':{'messages':[{'from':_0xe85054['phone'],'destinations':[{'to':_0x30e05a[_0x8497('0x22')]}],'text':_0x30e05a['body'],'notifyUrl':_0xe85054['remote']+_0x8497('0x27')+_0x30e05a['id']+_0x8497('0x28')+_0xe85054[_0x8497('0x50')],'notifyContentType':_0x8497('0x57'),'callbackData':_0xe85054[_0x8497('0x22')]+';'+_0x30e05a[_0x8497('0x25')]}]},'headers':{'Authorization':_0x8497('0x58')+_0x5a28f3[_0x8497('0x50')]},'json':!![]};return rp(_0x117607)[_0x8497('0x1d')](function(_0x20084f){if(_0x20084f[_0x8497('0x23')]){var _0xed3bc={'messageId':_0x20084f[_0x8497('0x23')][0x0][_0x8497('0xc')]};if(!_0xe85054[_0x8497('0x59')]){_0xed3bc[_0x8497('0x3a')]=!![];}return _0x4266a3['update'](_0xed3bc);}else{return logger[_0x8497('0x19')](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x53'),util['inspect'](_0x20084f,{'showHidden':![],'depth':null}));}});})[_0x8497('0x18')](function(_0x20b37c){return logger[_0x8497('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8497('0x3b'),_0x8497('0x53'),util[_0x8497('0x2c')](_0x20b37c,{'showHidden':![],'depth':null}));});}else{logger[_0x8497('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8497('0x3b'),_0x8497('0x53'),_0x8497('0x5a'));}}else{logger[_0x8497('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8497('0x3b'),_0x8497('0x53'),_0x8497('0x3c'));}break;case _0x8497('0x5b'):var _0x3201b2=require(_0x8497('0x5c'));if(_0xe85054[_0x8497('0x5d')]){var _0x17a052={};_0x17a052[_0x8497('0x5e')]=_0xe85054[_0x8497('0x30')];_0x17a052['phone']=_0x30e05a[_0x8497('0x22')];_0x17a052[_0x8497('0x5f')]=_0xe85054[_0x8497('0x22')];_0x17a052[_0x8497('0x60')]=_0x30e05a[_0x8497('0x25')];_0x17a052['timestamp']=+new Date();var _0x4c2d82='';var _0x15a8a7='';var _0x173361=Object[_0x8497('0x61')](_0x17a052);_0x173361[_0x8497('0x62')]();for(var _0xb77b1c=0x0;_0xb77b1c<_0x173361[_0x8497('0x63')];_0xb77b1c++){if(_0x4c2d82!=''){_0x4c2d82+='&';}_0x4c2d82+=_0x173361[_0xb77b1c]+'='+encodeURIComponent(_0x17a052[_0x173361[_0xb77b1c]]);_0x15a8a7+=_0x17a052[_0x173361[_0xb77b1c]];}_0x15a8a7+=_0xe85054[_0x8497('0x5d')];_0x15a8a7=_0x3201b2[_0x8497('0x64')](_0x8497('0x65'))['update'](_0x15a8a7)[_0x8497('0x66')](_0x8497('0x67'));if(_0x4c2d82!==''){_0x4c2d82+='&';}_0x4c2d82+=_0x8497('0x68')+_0x15a8a7;var _0x478c15={'method':'GET','uri':_0xe85054[_0x8497('0x54')]+_0x8497('0x69')+_0x4c2d82,'json':!![]};return rp(_0x478c15)[_0x8497('0x1d')](function(_0x593183){var _0x2a29d6=Object[_0x8497('0x61')](_0x593183);if(_0x593183[_0x2a29d6[0x0]][_0x8497('0x19')]&&parseInt(_0x593183[_0x2a29d6[0x0]][_0x8497('0x19')])===0x0){var _0x5aa14e={'messageId':_0x593183[_0x2a29d6[0x0]][_0x8497('0x6a')]};if(!_0xe85054[_0x8497('0x59')]){_0x5aa14e['read']=!![];}return _0x4266a3['update'](_0x5aa14e);}else{return logger[_0x8497('0x19')](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x5b'),util['inspect'](_0x593183['error'],{'showHidden':![],'depth':null}));}})[_0x8497('0x18')](function(_0x542470){return logger[_0x8497('0x19')](_0x8497('0x2b'),'afterCreate',_0x8497('0x5b'),util['inspect'](_0x542470,{'showHidden':![],'depth':null}));});}else{logger[_0x8497('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x8497('0x5b'),_0x8497('0x6b'));}break;case _0x8497('0x6c'):if(_0xe85054[_0x8497('0x5d')]){var _0x2ac4ab={'method':'POST','uri':'https://platform.clickatell.com/messages','headers':{'Authorization':_0xe85054[_0x8497('0x5d')]},'body':{'content':_0x30e05a[_0x8497('0x25')],'to':[_0x30e05a['phone']],'from':_0xe85054[_0x8497('0x22')],'binary':![],'clientMessageId':_0x8497('0x6d'),'charset':_0x8497('0x6e')},'json':!![]};rp(_0x2ac4ab)[_0x8497('0x1d')](function(_0x1be4aa){if(!_0x1be4aa[_0x8497('0x19')]){var _0x3aceb6={'messageId':_0x1be4aa['messages'][0x0][_0x8497('0x6f')]};if(!_0xe85054[_0x8497('0x59')]){_0x3aceb6[_0x8497('0x3a')]=!![];}return _0x4266a3[_0x8497('0x2a')](_0x3aceb6);}else{return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x8497('0x6c'),util[_0x8497('0x2c')](_0x1be4aa['error'],{'showHidden':![],'depth':null}));}})[_0x8497('0x18')](function(_0x37fef8){return logger['error'](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x6c'),util[_0x8497('0x2c')](_0x37fef8,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x6c'),_0x8497('0x6b'));}break;case _0x8497('0x70'):if(_0xe85054[_0x8497('0x5d')]){var _0x42ccc6={};var _0x478c15={'method':_0x8497('0x3e'),'uri':_0x8497('0x71'),'headers':{'Authorization':_0x8497('0x72')+_0xe85054[_0x8497('0x5d')],'Content-Type':_0x8497('0x57')},'body':{'from':_0xe85054[_0x8497('0x22')],'to':_0x30e05a[_0x8497('0x22')],'text':_0x30e05a[_0x8497('0x25')]},'json':!![]};return rp(_0x478c15)[_0x8497('0x1d')](function(_0x136090){if(_0x136090['code']==0xca){_0x42ccc6[_0x8497('0x73')]=_0x136090;var _0x2be15f={'method':_0x8497('0x3e'),'uri':_0x8497('0x74'),'headers':{'Authorization':'Bearer\x20'+_0xe85054['apiKey'],'Content-Type':_0x8497('0x57')},'body':{'refid':_0x42ccc6[_0x8497('0x73')][_0x8497('0x75')]},'json':!![]};return rp(_0x2be15f)[_0x8497('0x1d')](function(_0x2f704d){_0x42ccc6[_0x8497('0x76')]=_0x2f704d;var _0x29bfbc={'messageId':_0x42ccc6[_0x8497('0x73')]['refid'],'read':!![]};return _0x4266a3['update'](_0x29bfbc);});}else{return logger[_0x8497('0x19')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8497('0x3b'),_0x8497('0x70'),util['inspect'](_0x136090,{'showHidden':![],'depth':null}));}})[_0x8497('0x18')](function(_0x4648c1){return logger[_0x8497('0x19')](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x70'),util[_0x8497('0x2c')](_0x4648c1,{'showHidden':![],'depth':null}));});}else{return logger[_0x8497('0x19')](_0x8497('0x2b'),_0x8497('0x3b'),_0x8497('0x70'),_0x8497('0x77'));}break;}}})[_0x8497('0x78')](function(){_0x30496a();});}else{_0x30496a();}}},'charset':_0x8497('0x79'),'collate':_0x8497('0x7a')});};