eba894f18e429d30e1a031d6ff3fa479d7b8a6c0
[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 _0xe229=['format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','base64','http_code','data','queued_count','head','message_id','clickSend','plivo','authId','/status?token=','https://api.plivo.com/v1/Account/%s/Message/','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','IBSSO\x20','Missing\x20parameters:\x20base_url','csc','crypto','login','text','timestamp','keys','sort','length','apiKey','createHash','md5','digest','hex','signature=','id_sms','clickatell','https://platform.clickatell.com/messages','uuid','UTF-8','apiMessageId','Missing\x20parameters:\x20apiKey','https://api.intelepeer.com/_rest/v4/app/sms/send','code','Bearer\x20','application/json','message','refid','intelepeer','Token\x20not\x20received','finally','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','api','moment','request-promise','path','../../config/environment','./smsMessage.attributes','exports','define','SmsMessage','messageId','fti_sms_messages','body','FULLTEXT','models','direction','toLowerCase','out','secret','UserId','SmsInteraction','then','update','createdAt','SmsAccount','find','type','twilio','accountSid','authToken','messages','create','phone','remote','/api/sms/messages/','token','sid','catch','error','SmsMessage,\x20%s,\x20%s,\x20%s','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','password','smsMethod','sender','login?username=','username','&password=','GET','sms','POST','user_key','session_key','total_sent','internal_order_id','deliveryReport','read','afterCreate','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/v2/send/','requestid','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion'];(function(_0x3b96cf,_0x1592f2){var _0x2e315a=function(_0x21fa50){while(--_0x21fa50){_0x3b96cf['push'](_0x3b96cf['shift']());}};_0x2e315a(++_0x1592f2);}(_0xe229,0x1ac));var _0x9e22=function(_0x3b6b7f,_0x2acc5e){_0x3b6b7f=_0x3b6b7f-0x0;var _0x308036=_0xe229[_0x3b6b7f];return _0x308036;};'use strict';var _=require('lodash');var util=require(_0x9e22('0x0'));var logger=require(_0x9e22('0x1'))(_0x9e22('0x2'));var moment=require(_0x9e22('0x3'));var BPromise=require('bluebird');var rp=require(_0x9e22('0x4'));var fs=require('fs');var path=require(_0x9e22('0x5'));var rimraf=require('rimraf');var config=require(_0x9e22('0x6'));var attributes=require(_0x9e22('0x7'));module[_0x9e22('0x8')]=function(_0x2529a9,_0x1ece38){return _0x2529a9[_0x9e22('0x9')](_0x9e22('0xa'),attributes,{'tableName':'sms_messages','paranoid':![],'indexes':[{'name':'messageId','fields':[_0x9e22('0xb')]},{'name':_0x9e22('0xc'),'fields':[_0x9e22('0xd')],'type':_0x9e22('0xe')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x13a811,_0x493bc1,_0x3a9275){var _0x41618f=_0x2529a9[_0x9e22('0xf')];var _0x3afe09=_0x13a811['get']({'plain':!![]});if(_0x3afe09['direction']['toLowerCase']()==='in'||_0x3afe09[_0x9e22('0x10')][_0x9e22('0x11')]()===_0x9e22('0x12')&&!_0x3afe09[_0x9e22('0x13')]&&!_['isNil'](_0x3afe09[_0x9e22('0x14')])){_0x41618f[_0x9e22('0x15')]['findOne']({'where':{'id':_0x3afe09['SmsInteractionId']}})[_0x9e22('0x16')](function(_0x2a8371){if(_0x2a8371){_0x2a8371[_0x9e22('0x17')]({'lastMsgAt':_0x3afe09[_0x9e22('0x18')],'lastMsgDirection':_0x3afe09['direction']['toLowerCase']()});}})['catch'](function(_0xcad5e8){console['error'](_0xcad5e8);});}if(_0x3afe09[_0x9e22('0x10')]==='out'&&!_0x3afe09['secret']){var _0x99d612;_0x41618f[_0x9e22('0x19')][_0x9e22('0x1a')]({'where':{'id':_0x3afe09['SmsAccountId']},'raw':!![]})[_0x9e22('0x16')](function(_0x1b8ae2){_0x99d612=_0x1b8ae2;if(_0x99d612&&_0x99d612[_0x9e22('0x1b')]){switch(_0x99d612['type']){case _0x9e22('0x1c'):var _0x1932de=require(_0x9e22('0x1c'));if(_0x99d612[_0x9e22('0x1d')]&&_0x99d612['authToken']&&_0x99d612['phone']){var _0x493086=new _0x1932de(_0x99d612[_0x9e22('0x1d')],_0x99d612[_0x9e22('0x1e')]);_0x493086[_0x9e22('0x1f')][_0x9e22('0x20')]({'body':_0x3afe09[_0x9e22('0xd')],'to':_0x3afe09[_0x9e22('0x21')],'from':_0x99d612[_0x9e22('0x21')],'statusCallback':_0x99d612[_0x9e22('0x22')]+_0x9e22('0x23')+_0x3afe09['id']+'/status?token='+_0x99d612[_0x9e22('0x24')]})['then'](function(_0x59f50a){if(_0x59f50a['sid']){return _0x13a811[_0x9e22('0x17')]({'messageId':_0x59f50a[_0x9e22('0x25')]});}})[_0x9e22('0x26')](function(_0x43e92e){logger[_0x9e22('0x27')](_0x9e22('0x28'),'afterCreate',_0x9e22('0x1c'),util[_0x9e22('0x29')](_0x43e92e,{'showHidden':![],'depth':null}));});}else{logger[_0x9e22('0x27')](_0x9e22('0x28'),'afterCreate',_0x9e22('0x1c'),_0x9e22('0x2a'));}break;case _0x9e22('0x2b'):var _0x49853c='https://api.skebby.it/API/v1.0/REST/';if(_0x99d612['username']&&_0x99d612[_0x9e22('0x2c')]){var _0x3317e6={'recipient':[_0x3afe09[_0x9e22('0x21')]],'message':_0x3afe09[_0x9e22('0xd')],'message_type':_0x99d612['smsMethod']};if(_0x99d612[_0x9e22('0x2d')]&&_0x99d612['smsMethod']!=='SI'){_0x3317e6[_0x9e22('0x2e')]=_0x99d612[_0x9e22('0x21')];}var _0x39feeb={'url':_0x49853c+_0x9e22('0x2f')+_0x99d612[_0x9e22('0x30')]+_0x9e22('0x31')+_0x99d612[_0x9e22('0x2c')],'method':_0x9e22('0x32')};rp(_0x39feeb)[_0x9e22('0x16')](function(_0x5dc9b4){var _0x353c01=_0x5dc9b4['split'](';');var _0x22a7ae={'user_key':_0x353c01[0x0],'session_key':_0x353c01[0x1]};_0x39feeb={'url':_0x49853c+_0x9e22('0x33'),'method':_0x9e22('0x34'),'headers':{'user_key':_0x22a7ae[_0x9e22('0x35')],'Session_key':_0x22a7ae[_0x9e22('0x36')]},'json':!![],'body':_0x3317e6};return rp(_0x39feeb);})[_0x9e22('0x16')](function(_0x149572){if(_0x149572[_0x9e22('0x37')]>=0x1){var _0x2a129a={'messageId':_0x149572[_0x9e22('0x38')]};if(_0x99d612[_0x9e22('0x2d')]!=='GP'||!_0x99d612[_0x9e22('0x39')]){_0x2a129a[_0x9e22('0x3a')]=!![];}return _0x13a811['update'](_0x2a129a);}else{return logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),'skebby',util[_0x9e22('0x29')](_0x149572,{'showHidden':![],'depth':null}));}})[_0x9e22('0x26')](function(_0x10d59f){return logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),_0x9e22('0x2b'),util['inspect'](_0x10d59f,{'showHidden':![],'depth':null}));});}else{logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),_0x9e22('0x2b'),_0x9e22('0x3c'));}break;case _0x9e22('0x3d'):if(_0x99d612[_0x9e22('0x1e')]){var _0x5f2511={'recipient':_0x3afe09['phone'],'message':_0x3afe09['body'],'sender':_0x99d612[_0x9e22('0x3e')]||_0x99d612[_0x9e22('0x21')],'authorization':_0x99d612['authToken']};var _0x493bc1={'method':_0x9e22('0x34'),'uri':_0x9e22('0x3f'),'body':_0x5f2511,'json':!![]};rp(_0x493bc1)[_0x9e22('0x16')](function(_0x2c155a){var _0x626d3c={'messageId':_0x2c155a[_0x9e22('0x40')]};if(!_0x99d612[_0x9e22('0x39')]){_0x626d3c[_0x9e22('0x3a')]=!![];}return _0x13a811[_0x9e22('0x17')](_0x626d3c);})[_0x9e22('0x26')](function(_0x1345ea){logger[_0x9e22('0x27')](_0x9e22('0x28'),'afterCreate',_0x9e22('0x3d'),util['inspect'](_0x1345ea,{'showHidden':![],'depth':null}));});}else{logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),_0x9e22('0x3d'),_0x9e22('0x41'));}break;case _0x9e22('0x42'):if(_0x99d612['username']&&_0x99d612['password']){var _0x5f2511={'messages':[{'source':_0x9e22('0x43'),'to':_0x3afe09[_0x9e22('0x21')],'body':_0x3afe09['body'],'from':_0x99d612[_0x9e22('0x3e')]||_0x99d612[_0x9e22('0x21')]}]};var _0xfc1409=util[_0x9e22('0x44')](_0x9e22('0x45'),_0x99d612[_0x9e22('0x30')],_0x99d612['password']);var _0x493bc1={'method':'POST','uri':_0x9e22('0x46'),'body':_0x5f2511,'headers':{'Authorization':util[_0x9e22('0x44')](_0x9e22('0x47'),new Buffer(_0xfc1409)[_0x9e22('0x48')](_0x9e22('0x49')))},'json':!![]};rp(_0x493bc1)[_0x9e22('0x16')](function(_0x2697cb){if(_0x2697cb[_0x9e22('0x4a')]>=0xc8&&_0x2697cb[_0x9e22('0x4a')]<=0xce){if(_0x2697cb[_0x9e22('0x4b')]&&_0x2697cb[_0x9e22('0x4b')][_0x9e22('0x4c')]>0x0){var _0x384db4=_[_0x9e22('0x4d')](_0x2697cb[_0x9e22('0x4b')][_0x9e22('0x1f')]);var _0x1a9ea2={'messageId':_0x384db4[_0x9e22('0x4e')]};if(!_0x99d612['deliveryReport']){_0x1a9ea2[_0x9e22('0x3a')]=!![];}return _0x13a811[_0x9e22('0x17')](_0x1a9ea2);}else{logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),'clickSend',util[_0x9e22('0x29')](_0x2697cb,{'showHidden':![],'depth':null}));}}else{logger[_0x9e22('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9e22('0x3b'),'clickSend',util[_0x9e22('0x29')](_0x2697cb,{'showHidden':![],'depth':null}));}})[_0x9e22('0x26')](function(_0x22a50a){logger['error'](_0x9e22('0x28'),_0x9e22('0x3b'),_0x9e22('0x4f'),util['inspect'](_0x22a50a,{'showHidden':![],'depth':null}));});}else{logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),_0x9e22('0x4f'),_0x9e22('0x3c'));}break;case _0x9e22('0x50'):if(_0x99d612[_0x9e22('0x51')]&&_0x99d612['authToken']){var _0x5f2511={'dst':_0x3afe09[_0x9e22('0x21')],'text':_0x3afe09[_0x9e22('0xd')],'src':_0x99d612['senderString']||_0x99d612[_0x9e22('0x21')],'url':_0x99d612[_0x9e22('0x22')]+_0x9e22('0x23')+_0x3afe09['id']+_0x9e22('0x52')+_0x99d612['token']};var _0xfc1409=util[_0x9e22('0x44')](_0x9e22('0x45'),_0x99d612[_0x9e22('0x51')],_0x99d612[_0x9e22('0x1e')]);var _0x493bc1={'method':_0x9e22('0x34'),'uri':util[_0x9e22('0x44')](_0x9e22('0x53'),_0x99d612['authId']),'body':_0x5f2511,'headers':{'Authorization':util[_0x9e22('0x44')]('Basic\x20%s',new Buffer(_0xfc1409)[_0x9e22('0x48')](_0x9e22('0x49')))},'json':!![]};rp(_0x493bc1)[_0x9e22('0x16')](function(_0x4ee601){var _0x2562d1={'messageId':_0x4ee601[_0x9e22('0x54')][0x0]};return _0x13a811['update'](_0x2562d1);})[_0x9e22('0x26')](function(_0x552f39){logger['error'](_0x9e22('0x28'),'afterCreate',_0x9e22('0x50'),util[_0x9e22('0x29')](_0x552f39,{'showHidden':![],'depth':null}));});}else{logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),_0x9e22('0x50'),_0x9e22('0x55'));}break;case _0x9e22('0x56'):if(_0x99d612[_0x9e22('0x30')]&&_0x99d612[_0x9e22('0x2c')]){if(_0x99d612[_0x9e22('0x57')]){var _0x201a47={'method':_0x9e22('0x34'),'uri':_0x99d612['baseUrl']+_0x9e22('0x58'),'body':{'username':_0x99d612[_0x9e22('0x30')],'password':_0x99d612['password']},'json':!![]};return rp(_0x201a47)['then'](function(_0x5a042f){var _0x3486f8={'method':_0x9e22('0x34'),'uri':_0x99d612[_0x9e22('0x57')]+_0x9e22('0x59'),'body':{'messages':[{'from':_0x99d612[_0x9e22('0x21')],'destinations':[{'to':_0x3afe09['phone']}],'text':_0x3afe09[_0x9e22('0xd')],'notifyUrl':_0x99d612[_0x9e22('0x22')]+_0x9e22('0x23')+_0x3afe09['id']+_0x9e22('0x52')+_0x99d612[_0x9e22('0x24')],'notifyContentType':'application/json','callbackData':_0x99d612['phone']+';'+_0x3afe09[_0x9e22('0xd')]}]},'headers':{'Authorization':_0x9e22('0x5a')+_0x5a042f[_0x9e22('0x24')]},'json':!![]};return rp(_0x3486f8)[_0x9e22('0x16')](function(_0x176cb0){if(_0x176cb0[_0x9e22('0x1f')]){var _0x4d55d6={'messageId':_0x176cb0[_0x9e22('0x1f')][0x0][_0x9e22('0xb')]};if(!_0x99d612['deliveryReport']){_0x4d55d6[_0x9e22('0x3a')]=!![];}return _0x13a811[_0x9e22('0x17')](_0x4d55d6);}else{return logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),'infobip',util['inspect'](_0x176cb0,{'showHidden':![],'depth':null}));}});})[_0x9e22('0x26')](function(_0x1f8f79){return logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),'infobip',util[_0x9e22('0x29')](_0x1f8f79,{'showHidden':![],'depth':null}));});}else{logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),_0x9e22('0x56'),_0x9e22('0x5b'));}}else{logger[_0x9e22('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x9e22('0x3b'),_0x9e22('0x56'),_0x9e22('0x3c'));}break;case _0x9e22('0x5c'):var _0x42fb8b=require(_0x9e22('0x5d'));if(_0x99d612['apiKey']){var _0x51f30f={};_0x51f30f[_0x9e22('0x5e')]=_0x99d612['username'];_0x51f30f[_0x9e22('0x21')]=_0x3afe09[_0x9e22('0x21')];_0x51f30f['sender']=_0x99d612[_0x9e22('0x21')];_0x51f30f[_0x9e22('0x5f')]=_0x3afe09['body'];_0x51f30f[_0x9e22('0x60')]=+new Date();var _0x5f1ce0='';var _0x59bb22='';var _0xcffef4=Object[_0x9e22('0x61')](_0x51f30f);_0xcffef4[_0x9e22('0x62')]();for(var _0x327075=0x0;_0x327075<_0xcffef4[_0x9e22('0x63')];_0x327075++){if(_0x5f1ce0!=''){_0x5f1ce0+='&';}_0x5f1ce0+=_0xcffef4[_0x327075]+'='+encodeURIComponent(_0x51f30f[_0xcffef4[_0x327075]]);_0x59bb22+=_0x51f30f[_0xcffef4[_0x327075]];}_0x59bb22+=_0x99d612[_0x9e22('0x64')];_0x59bb22=_0x42fb8b[_0x9e22('0x65')](_0x9e22('0x66'))[_0x9e22('0x17')](_0x59bb22)[_0x9e22('0x67')](_0x9e22('0x68'));if(_0x5f1ce0!==''){_0x5f1ce0+='&';}_0x5f1ce0+=_0x9e22('0x69')+_0x59bb22;var _0x39feeb={'method':'GET','uri':_0x99d612[_0x9e22('0x57')]+'/external/get/send.php?'+_0x5f1ce0,'json':!![]};return rp(_0x39feeb)[_0x9e22('0x16')](function(_0x4bc416){var _0x527b66=Object[_0x9e22('0x61')](_0x4bc416);if(_0x4bc416[_0x527b66[0x0]][_0x9e22('0x27')]&&parseInt(_0x4bc416[_0x527b66[0x0]][_0x9e22('0x27')])===0x0){var _0x367793={'messageId':_0x4bc416[_0x527b66[0x0]][_0x9e22('0x6a')]};if(!_0x99d612['deliveryReport']){_0x367793[_0x9e22('0x3a')]=!![];}return _0x13a811[_0x9e22('0x17')](_0x367793);}else{return logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),_0x9e22('0x5c'),util[_0x9e22('0x29')](_0x4bc416[_0x9e22('0x27')],{'showHidden':![],'depth':null}));}})[_0x9e22('0x26')](function(_0xf2732d){return logger[_0x9e22('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x9e22('0x5c'),util['inspect'](_0xf2732d,{'showHidden':![],'depth':null}));});}else{logger[_0x9e22('0x27')](_0x9e22('0x28'),'afterCreate',_0x9e22('0x5c'),'Missing\x20parameters:\x20apiKey');}break;case _0x9e22('0x6b'):if(_0x99d612[_0x9e22('0x64')]){var _0x1270f8={'method':_0x9e22('0x34'),'uri':_0x9e22('0x6c'),'headers':{'Authorization':_0x99d612[_0x9e22('0x64')]},'body':{'content':_0x3afe09[_0x9e22('0xd')],'to':[_0x3afe09[_0x9e22('0x21')]],'from':_0x99d612[_0x9e22('0x21')],'binary':![],'clientMessageId':_0x9e22('0x6d'),'charset':_0x9e22('0x6e')},'json':!![]};rp(_0x1270f8)['then'](function(_0x5fa037){if(!_0x5fa037[_0x9e22('0x27')]){var _0x1472ba={'messageId':_0x5fa037[_0x9e22('0x1f')][0x0][_0x9e22('0x6f')]};if(!_0x99d612[_0x9e22('0x39')]){_0x1472ba[_0x9e22('0x3a')]=!![];}return _0x13a811['update'](_0x1472ba);}else{return logger['error'](_0x9e22('0x28'),_0x9e22('0x3b'),'clickatell',util[_0x9e22('0x29')](_0x5fa037[_0x9e22('0x27')],{'showHidden':![],'depth':null}));}})[_0x9e22('0x26')](function(_0x169245){return logger[_0x9e22('0x27')](_0x9e22('0x28'),'afterCreate','clickatell',util[_0x9e22('0x29')](_0x169245,{'showHidden':![],'depth':null}));});}else{logger[_0x9e22('0x27')](_0x9e22('0x28'),'afterCreate','clickatell',_0x9e22('0x70'));}break;case'intelepeer':if(_0x99d612[_0x9e22('0x64')]){var _0x2abd2d={};var _0x39feeb={'method':_0x9e22('0x34'),'uri':_0x9e22('0x71'),'headers':{'Authorization':'Bearer\x20'+_0x99d612['apiKey'],'Content-Type':'application/json'},'body':{'from':_0x99d612[_0x9e22('0x21')],'to':_0x3afe09[_0x9e22('0x21')],'text':_0x3afe09[_0x9e22('0xd')]},'json':!![]};return rp(_0x39feeb)[_0x9e22('0x16')](function(_0x353670){if(_0x353670[_0x9e22('0x72')]==0xca){_0x2abd2d['message']=_0x353670;var _0x31be7a={'method':_0x9e22('0x34'),'uri':'https://api.intelepeer.com/_rest/v4/app/sms/mdr','headers':{'Authorization':_0x9e22('0x73')+_0x99d612[_0x9e22('0x64')],'Content-Type':_0x9e22('0x74')},'body':{'refid':_0x2abd2d[_0x9e22('0x75')][_0x9e22('0x76')]},'json':!![]};return rp(_0x31be7a)[_0x9e22('0x16')](function(_0x96f92f){_0x2abd2d['status']=_0x96f92f;var _0x46fefb={'messageId':_0x2abd2d[_0x9e22('0x75')]['refid'],'read':!![]};return _0x13a811[_0x9e22('0x17')](_0x46fefb);});}else{return logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),_0x9e22('0x77'),util[_0x9e22('0x29')](_0x353670,{'showHidden':![],'depth':null}));}})[_0x9e22('0x26')](function(_0x537532){return logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),_0x9e22('0x77'),util['inspect'](_0x537532,{'showHidden':![],'depth':null}));});}else{return logger[_0x9e22('0x27')](_0x9e22('0x28'),_0x9e22('0x3b'),'intelepeer',_0x9e22('0x78'));}break;}}})[_0x9e22('0x79')](function(){_0x3a9275();});}else{_0x3a9275();}}},'charset':_0x9e22('0x7a'),'collate':_0x9e22('0x7b')});};