Built motion from commit (unavailable).|2.4.4
[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 _0x0579=['http_code','data','queued_count','head','messages','clickSend','plivo','authId','remote','https://api.plivo.com/v1/Account/%s/Message/','message_uuid','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','csc','sender','text','timestamp','keys','sort','length','apiKey','createHash','md5','digest','hex','GET','https://sms.csc.lv/external/get/send.php?','id_sms','clickatell','https://platform.clickatell.com/messages','uuid','UTF-8','apiMessageId','Missing\x20parameters:\x20apiKey','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','status','refid','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./smsMessage.attributes','define','SmsMessage','sms_messages','messageId','fti_sms_messages','body','models','get','direction','toLowerCase','out','isNil','UserId','SmsInteraction','findOne','SmsInteractionId','then','createdAt','catch','error','secret','find','SmsAccountId','type','twilio','authToken','phone','/api/sms/messages/','/status?token=','token','sid','update','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','username','password','smsMethod','login?username=','&password=','POST','session_key','total_sent','internal_order_id','deliveryReport','read','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/send/','requestid','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s'];(function(_0x455a0a,_0x4fb07f){var _0x365895=function(_0x1dfc9a){while(--_0x1dfc9a){_0x455a0a['push'](_0x455a0a['shift']());}};_0x365895(++_0x4fb07f);}(_0x0579,0x119));var _0x9057=function(_0xb57309,_0x1a4b62){_0xb57309=_0xb57309-0x0;var _0x5eb84d=_0x0579[_0xb57309];return _0x5eb84d;};'use strict';var _=require(_0x9057('0x0'));var util=require(_0x9057('0x1'));var logger=require(_0x9057('0x2'))(_0x9057('0x3'));var moment=require(_0x9057('0x4'));var BPromise=require('bluebird');var rp=require(_0x9057('0x5'));var fs=require('fs');var path=require(_0x9057('0x6'));var rimraf=require(_0x9057('0x7'));var config=require(_0x9057('0x8'));var attributes=require(_0x9057('0x9'));module['exports']=function(_0x1c1e10,_0x3c33bf){return _0x1c1e10[_0x9057('0xa')](_0x9057('0xb'),attributes,{'tableName':_0x9057('0xc'),'paranoid':![],'indexes':[{'name':_0x9057('0xd'),'fields':['messageId']},{'name':_0x9057('0xe'),'fields':[_0x9057('0xf')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x518bae,_0x44cdd2,_0x4ae770){var _0x459dcf=_0x1c1e10[_0x9057('0x10')];var _0x5c001b=_0x518bae[_0x9057('0x11')]({'plain':!![]});if(_0x5c001b[_0x9057('0x12')][_0x9057('0x13')]()==='in'||_0x5c001b['direction'][_0x9057('0x13')]()===_0x9057('0x14')&&!_0x5c001b['secret']&&!_[_0x9057('0x15')](_0x5c001b[_0x9057('0x16')])){_0x459dcf[_0x9057('0x17')][_0x9057('0x18')]({'where':{'id':_0x5c001b[_0x9057('0x19')]}})[_0x9057('0x1a')](function(_0x5a24fa){if(_0x5a24fa){_0x5a24fa['update']({'lastMsgAt':_0x5c001b[_0x9057('0x1b')],'lastMsgDirection':_0x5c001b[_0x9057('0x12')][_0x9057('0x13')]()});}})[_0x9057('0x1c')](function(_0x32f534){console[_0x9057('0x1d')](_0x32f534);});}if(_0x5c001b['direction']===_0x9057('0x14')&&!_0x5c001b[_0x9057('0x1e')]){var _0x18365e;_0x459dcf['SmsAccount'][_0x9057('0x1f')]({'where':{'id':_0x5c001b[_0x9057('0x20')]},'raw':!![]})[_0x9057('0x1a')](function(_0x3db607){_0x18365e=_0x3db607;if(_0x18365e&&_0x18365e[_0x9057('0x21')]){switch(_0x18365e[_0x9057('0x21')]){case'twilio':var _0x57b054=require(_0x9057('0x22'));if(_0x18365e['accountSid']&&_0x18365e[_0x9057('0x23')]&&_0x18365e[_0x9057('0x24')]){var _0x4bb597=new _0x57b054(_0x18365e['accountSid'],_0x18365e[_0x9057('0x23')]);_0x4bb597['messages']['create']({'body':_0x5c001b[_0x9057('0xf')],'to':_0x5c001b[_0x9057('0x24')],'from':_0x18365e[_0x9057('0x24')],'statusCallback':_0x18365e['remote']+_0x9057('0x25')+_0x5c001b['id']+_0x9057('0x26')+_0x18365e[_0x9057('0x27')]})[_0x9057('0x1a')](function(_0x262ffb){if(_0x262ffb[_0x9057('0x28')]){return _0x518bae[_0x9057('0x29')]({'messageId':_0x262ffb[_0x9057('0x28')]});}})[_0x9057('0x1c')](function(_0x537612){logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x22'),util[_0x9057('0x2c')](_0x537612,{'showHidden':![],'depth':null}));});}else{logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x22'),_0x9057('0x2d'));}break;case _0x9057('0x2e'):var _0x31b727='https://api.skebby.it/API/v1.0/REST/';if(_0x18365e[_0x9057('0x2f')]&&_0x18365e[_0x9057('0x30')]){var _0x1c6951={'recipient':[_0x5c001b['phone']],'message':_0x5c001b['body'],'message_type':_0x18365e[_0x9057('0x31')]};if(_0x18365e[_0x9057('0x31')]&&_0x18365e[_0x9057('0x31')]!=='SI'){_0x1c6951['sender']=_0x18365e[_0x9057('0x24')];}var _0x292673={'url':_0x31b727+_0x9057('0x32')+_0x18365e[_0x9057('0x2f')]+_0x9057('0x33')+_0x18365e[_0x9057('0x30')],'method':'GET'};rp(_0x292673)[_0x9057('0x1a')](function(_0x373e9f){var _0x4b062e=_0x373e9f['split'](';');var _0x2dc479={'user_key':_0x4b062e[0x0],'session_key':_0x4b062e[0x1]};_0x292673={'url':_0x31b727+'sms','method':_0x9057('0x34'),'headers':{'user_key':_0x2dc479['user_key'],'Session_key':_0x2dc479[_0x9057('0x35')]},'json':!![],'body':_0x1c6951};return rp(_0x292673);})['then'](function(_0xb429b4){if(_0xb429b4[_0x9057('0x36')]>=0x1){var _0x256fd8={'messageId':_0xb429b4[_0x9057('0x37')]};if(_0x18365e[_0x9057('0x31')]!=='GP'||!_0x18365e[_0x9057('0x38')]){_0x256fd8[_0x9057('0x39')]=!![];}return _0x518bae[_0x9057('0x29')](_0x256fd8);}else{return logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x2e'),util[_0x9057('0x2c')](_0xb429b4,{'showHidden':![],'depth':null}));}})[_0x9057('0x1c')](function(_0x44db6b){return logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x2e'),util[_0x9057('0x2c')](_0x44db6b,{'showHidden':![],'depth':null}));});}else{logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x2e'),_0x9057('0x3a'));}break;case _0x9057('0x3b'):if(_0x18365e[_0x9057('0x23')]){var _0x500c45={'recipient':_0x5c001b[_0x9057('0x24')],'message':_0x5c001b[_0x9057('0xf')],'sender':_0x18365e[_0x9057('0x3c')]||_0x18365e[_0x9057('0x24')],'authorization':_0x18365e['authToken']};var _0x44cdd2={'method':'POST','uri':_0x9057('0x3d'),'body':_0x500c45,'json':!![]};rp(_0x44cdd2)[_0x9057('0x1a')](function(_0x415c1b){var _0x24d444={'messageId':_0x415c1b[_0x9057('0x3e')]};if(!_0x18365e[_0x9057('0x38')]){_0x24d444[_0x9057('0x39')]=!![];}return _0x518bae[_0x9057('0x29')](_0x24d444);})['catch'](function(_0x2742d4){logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x3b'),util[_0x9057('0x2c')](_0x2742d4,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x9057('0x2a'),'afterCreate',_0x9057('0x3b'),_0x9057('0x3f'));}break;case _0x9057('0x40'):if(_0x18365e[_0x9057('0x2f')]&&_0x18365e[_0x9057('0x30')]){var _0x500c45={'messages':[{'source':_0x9057('0x41'),'to':_0x5c001b[_0x9057('0x24')],'body':_0x5c001b[_0x9057('0xf')],'from':_0x18365e['senderString']||_0x18365e[_0x9057('0x24')]}]};var _0x1051b7=util[_0x9057('0x42')](_0x9057('0x43'),_0x18365e[_0x9057('0x2f')],_0x18365e[_0x9057('0x30')]);var _0x44cdd2={'method':_0x9057('0x34'),'uri':_0x9057('0x44'),'body':_0x500c45,'headers':{'Authorization':util[_0x9057('0x42')](_0x9057('0x45'),new Buffer(_0x1051b7)['toString']('base64'))},'json':!![]};rp(_0x44cdd2)['then'](function(_0x50fa6e){if(_0x50fa6e[_0x9057('0x46')]>=0xc8&&_0x50fa6e[_0x9057('0x46')]<=0xce){if(_0x50fa6e['data']&&_0x50fa6e[_0x9057('0x47')][_0x9057('0x48')]>0x0){var _0x29af2b=_[_0x9057('0x49')](_0x50fa6e[_0x9057('0x47')][_0x9057('0x4a')]);var _0x3c035c={'messageId':_0x29af2b['message_id']};if(!_0x18365e[_0x9057('0x38')]){_0x3c035c[_0x9057('0x39')]=!![];}return _0x518bae[_0x9057('0x29')](_0x3c035c);}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x9057('0x4b'),util['inspect'](_0x50fa6e,{'showHidden':![],'depth':null}));}}else{logger['error'](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x4b'),util['inspect'](_0x50fa6e,{'showHidden':![],'depth':null}));}})[_0x9057('0x1c')](function(_0x103619){logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),'clickSend',util[_0x9057('0x2c')](_0x103619,{'showHidden':![],'depth':null}));});}else{logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x4b'),_0x9057('0x3a'));}break;case _0x9057('0x4c'):if(_0x18365e[_0x9057('0x4d')]&&_0x18365e[_0x9057('0x23')]){var _0x500c45={'dst':_0x5c001b[_0x9057('0x24')],'text':_0x5c001b['body'],'src':_0x18365e[_0x9057('0x3c')]||_0x18365e['phone'],'url':_0x18365e[_0x9057('0x4e')]+_0x9057('0x25')+_0x5c001b['id']+_0x9057('0x26')+_0x18365e[_0x9057('0x27')]};var _0x1051b7=util['format'](_0x9057('0x43'),_0x18365e['authId'],_0x18365e[_0x9057('0x23')]);var _0x44cdd2={'method':_0x9057('0x34'),'uri':util[_0x9057('0x42')](_0x9057('0x4f'),_0x18365e[_0x9057('0x4d')]),'body':_0x500c45,'headers':{'Authorization':util[_0x9057('0x42')](_0x9057('0x45'),new Buffer(_0x1051b7)['toString']('base64'))},'json':!![]};rp(_0x44cdd2)[_0x9057('0x1a')](function(_0x3e4931){var _0x5db8ba={'messageId':_0x3e4931[_0x9057('0x50')][0x0]};return _0x518bae['update'](_0x5db8ba);})[_0x9057('0x1c')](function(_0x164d02){logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9057('0x2b'),_0x9057('0x4c'),util[_0x9057('0x2c')](_0x164d02,{'showHidden':![],'depth':null}));});}else{logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x4c'),'Missing\x20parameters:\x20authId,\x20authToken');}break;case _0x9057('0x51'):if(_0x18365e[_0x9057('0x2f')]&&_0x18365e[_0x9057('0x30')]){if(_0x18365e[_0x9057('0x52')]){var _0x1feda2={'method':_0x9057('0x34'),'uri':_0x18365e[_0x9057('0x52')]+_0x9057('0x53'),'body':{'username':_0x18365e['username'],'password':_0x18365e[_0x9057('0x30')]},'json':!![]};return rp(_0x1feda2)[_0x9057('0x1a')](function(_0x2178cd){var _0x1e6764={'method':_0x9057('0x34'),'uri':_0x18365e['baseUrl']+_0x9057('0x54'),'body':{'messages':[{'from':_0x18365e[_0x9057('0x24')],'destinations':[{'to':_0x5c001b['phone']}],'text':_0x5c001b['body'],'notifyUrl':_0x18365e['remote']+_0x9057('0x25')+_0x5c001b['id']+_0x9057('0x26')+_0x18365e[_0x9057('0x27')],'notifyContentType':_0x9057('0x55'),'callbackData':_0x18365e[_0x9057('0x24')]+';'+_0x5c001b['body']}]},'headers':{'Authorization':_0x9057('0x56')+_0x2178cd['token']},'json':!![]};return rp(_0x1e6764)[_0x9057('0x1a')](function(_0x2ea67d){if(_0x2ea67d[_0x9057('0x4a')]){var _0x15e2ff={'messageId':_0x2ea67d[_0x9057('0x4a')][0x0][_0x9057('0xd')]};if(!_0x18365e[_0x9057('0x38')]){_0x15e2ff[_0x9057('0x39')]=!![];}return _0x518bae[_0x9057('0x29')](_0x15e2ff);}else{return logger[_0x9057('0x1d')](_0x9057('0x2a'),'afterCreate',_0x9057('0x51'),util[_0x9057('0x2c')](_0x2ea67d,{'showHidden':![],'depth':null}));}});})[_0x9057('0x1c')](function(_0x5bdcc3){return logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x51'),util['inspect'](_0x5bdcc3,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x51'),'Missing\x20parameters:\x20base_url');}}else{logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),'infobip',_0x9057('0x3a'));}break;case _0x9057('0x57'):var _0x52f897=require('crypto');if(_0x18365e['apiKey']){var _0x58e708={};_0x58e708['login']=_0x18365e[_0x9057('0x2f')];_0x58e708[_0x9057('0x24')]=_0x5c001b['phone'];_0x58e708[_0x9057('0x58')]=_0x18365e[_0x9057('0x24')];_0x58e708[_0x9057('0x59')]=_0x5c001b[_0x9057('0xf')];_0x58e708[_0x9057('0x5a')]=+new Date();var _0x6e0108='';var _0x18f438='';var _0x49acf8=Object[_0x9057('0x5b')](_0x58e708);_0x49acf8[_0x9057('0x5c')]();for(var _0x218d48=0x0;_0x218d48<_0x49acf8[_0x9057('0x5d')];_0x218d48++){if(_0x6e0108!=''){_0x6e0108+='&';}_0x6e0108+=_0x49acf8[_0x218d48]+'='+encodeURIComponent(_0x58e708[_0x49acf8[_0x218d48]]);_0x18f438+=_0x58e708[_0x49acf8[_0x218d48]];}_0x18f438+=_0x18365e[_0x9057('0x5e')];_0x18f438=_0x52f897[_0x9057('0x5f')](_0x9057('0x60'))[_0x9057('0x29')](_0x18f438)[_0x9057('0x61')](_0x9057('0x62'));if(_0x6e0108!==''){_0x6e0108+='&';}_0x6e0108+='signature='+_0x18f438;var _0x292673={'method':_0x9057('0x63'),'uri':_0x9057('0x64')+_0x6e0108,'json':!![]};return rp(_0x292673)[_0x9057('0x1a')](function(_0x11cb3d){var _0x33adab=Object['keys'](_0x11cb3d);if(_0x11cb3d[_0x33adab[0x0]][_0x9057('0x1d')]&&parseInt(_0x11cb3d[_0x33adab[0x0]][_0x9057('0x1d')])===0x0){var _0x3b83ea={'messageId':_0x11cb3d[_0x33adab[0x0]][_0x9057('0x65')]};if(!_0x18365e[_0x9057('0x38')]){_0x3b83ea[_0x9057('0x39')]=!![];}return _0x518bae[_0x9057('0x29')](_0x3b83ea);}else{return logger[_0x9057('0x1d')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9057('0x2b'),_0x9057('0x57'),util['inspect'](_0x11cb3d[_0x9057('0x1d')],{'showHidden':![],'depth':null}));}})[_0x9057('0x1c')](function(_0x57fcc6){return logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x57'),util[_0x9057('0x2c')](_0x57fcc6,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x57'),'Missing\x20parameters:\x20apiKey');}break;case _0x9057('0x66'):if(_0x18365e['apiKey']){var _0x414fcd={'method':_0x9057('0x34'),'uri':_0x9057('0x67'),'headers':{'Authorization':_0x18365e[_0x9057('0x5e')]},'body':{'content':_0x5c001b[_0x9057('0xf')],'to':[_0x5c001b[_0x9057('0x24')]],'from':_0x18365e[_0x9057('0x24')],'binary':![],'clientMessageId':_0x9057('0x68'),'charset':_0x9057('0x69')},'json':!![]};rp(_0x414fcd)[_0x9057('0x1a')](function(_0x56ee3d){if(!_0x56ee3d[_0x9057('0x1d')]){var _0x33d36f={'messageId':_0x56ee3d[_0x9057('0x4a')][0x0][_0x9057('0x6a')]};if(!_0x18365e[_0x9057('0x38')]){_0x33d36f[_0x9057('0x39')]=!![];}return _0x518bae[_0x9057('0x29')](_0x33d36f);}else{return logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),'clickatell',util[_0x9057('0x2c')](_0x56ee3d['error'],{'showHidden':![],'depth':null}));}})[_0x9057('0x1c')](function(_0x4d2a4a){return logger[_0x9057('0x1d')](_0x9057('0x2a'),'afterCreate',_0x9057('0x66'),util['inspect'](_0x4d2a4a,{'showHidden':![],'depth':null}));});}else{logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x66'),_0x9057('0x6b'));}break;case _0x9057('0x6c'):if(_0x18365e[_0x9057('0x5e')]){var _0x49c185={};var _0x292673={'method':'POST','uri':_0x9057('0x6d'),'headers':{'Authorization':'Bearer\x20'+_0x18365e['apiKey'],'Content-Type':_0x9057('0x55')},'body':{'from':_0x18365e[_0x9057('0x24')],'to':_0x5c001b[_0x9057('0x24')],'text':_0x5c001b[_0x9057('0xf')]},'json':!![]};return rp(_0x292673)[_0x9057('0x1a')](function(_0x3273dc){if(_0x3273dc['code']==0xca){_0x49c185[_0x9057('0x6e')]=_0x3273dc;var _0x92ec4b={'method':_0x9057('0x34'),'uri':_0x9057('0x6f'),'headers':{'Authorization':'Bearer\x20'+_0x18365e[_0x9057('0x5e')],'Content-Type':_0x9057('0x55')},'body':{'refid':_0x49c185['message']['refid']},'json':!![]};return rp(_0x92ec4b)[_0x9057('0x1a')](function(_0x49873d){_0x49c185[_0x9057('0x70')]=_0x49873d;var _0x6eac35={'messageId':_0x49c185[_0x9057('0x6e')][_0x9057('0x71')],'read':!![]};return _0x518bae[_0x9057('0x29')](_0x6eac35);});}else{return logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),'intelepeer',util[_0x9057('0x2c')](_0x3273dc,{'showHidden':![],'depth':null}));}})[_0x9057('0x1c')](function(_0x5079fd){return logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x6c'),util[_0x9057('0x2c')](_0x5079fd,{'showHidden':![],'depth':null}));});}else{return logger[_0x9057('0x1d')](_0x9057('0x2a'),_0x9057('0x2b'),_0x9057('0x6c'),'Token\x20not\x20received');}break;}}})[_0x9057('0x72')](function(){_0x4ae770();});}else{_0x4ae770();}}},'charset':_0x9057('0x73'),'collate':_0x9057('0x74')});};