Built motion from commit (unavailable).|2.4.3
[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 _0x179e=['message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','refid','status','intelepeer','finally','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','bluebird','request-promise','path','rimraf','exports','define','SmsMessage','sms_messages','messageId','body','FULLTEXT','models','get','toLowerCase','direction','out','isNil','UserId','SmsInteraction','findOne','SmsInteractionId','then','update','createdAt','catch','error','secret','SmsAccount','find','type','twilio','authToken','phone','accountSid','messages','create','remote','/api/sms/messages/','/status?token=','token','sid','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','https://api.skebby.it/API/v1.0/REST/','username','smsMethod','sender','login?username=','GET','POST','user_key','session_key','total_sent','read','skebby','Missing\x20parameters:\x20username,\x20password','connectel','senderString','clicksend','password','xCALLY\x20Motion','format','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','toString','http_code','data','queued_count','head','message_id','deliveryReport','clickSend','plivo','authId','https://api.plivo.com/v1/Account/%s/Message/','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','baseUrl','/auth/1/session','/sms/2/text/advanced','IBSSO\x20','infobip','csc','crypto','apiKey','login','text','timestamp','createHash','digest','hex','signature=','keys','id_sms','Missing\x20parameters:\x20apiKey','clickatell','https://platform.clickatell.com/messages','uuid','UTF-8','apiMessageId','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','application/json','code'];(function(_0x2ffb4c,_0x2a1ab0){var _0x56635b=function(_0xeed64e){while(--_0xeed64e){_0x2ffb4c['push'](_0x2ffb4c['shift']());}};_0x56635b(++_0x2a1ab0);}(_0x179e,0x164));var _0xe179=function(_0x3cdd83,_0x4c9216){_0x3cdd83=_0x3cdd83-0x0;var _0x139a73=_0x179e[_0x3cdd83];return _0x139a73;};'use strict';var _=require('lodash');var util=require(_0xe179('0x0'));var logger=require(_0xe179('0x1'))('api');var moment=require('moment');var BPromise=require(_0xe179('0x2'));var rp=require(_0xe179('0x3'));var fs=require('fs');var path=require(_0xe179('0x4'));var rimraf=require(_0xe179('0x5'));var config=require('../../config/environment');var attributes=require('./smsMessage.attributes');module[_0xe179('0x6')]=function(_0x254970,_0x4b8a44){return _0x254970[_0xe179('0x7')](_0xe179('0x8'),attributes,{'tableName':_0xe179('0x9'),'paranoid':![],'indexes':[{'name':_0xe179('0xa'),'fields':['messageId']},{'name':'fti_sms_messages','fields':[_0xe179('0xb')],'type':_0xe179('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x343c53,_0x23d810,_0x453cb6){var _0x4a2027=_0x254970[_0xe179('0xd')];var _0x5b0d60=_0x343c53[_0xe179('0xe')]({'plain':!![]});if(_0x5b0d60['direction'][_0xe179('0xf')]()==='in'||_0x5b0d60[_0xe179('0x10')][_0xe179('0xf')]()===_0xe179('0x11')&&!_0x5b0d60['secret']&&!_[_0xe179('0x12')](_0x5b0d60[_0xe179('0x13')])){_0x4a2027[_0xe179('0x14')][_0xe179('0x15')]({'where':{'id':_0x5b0d60[_0xe179('0x16')]}})[_0xe179('0x17')](function(_0x27070a){if(_0x27070a){_0x27070a[_0xe179('0x18')]({'lastMsgAt':_0x5b0d60[_0xe179('0x19')],'lastMsgDirection':_0x5b0d60[_0xe179('0x10')][_0xe179('0xf')]()});}})[_0xe179('0x1a')](function(_0x1b2ab0){console[_0xe179('0x1b')](_0x1b2ab0);});}if(_0x5b0d60[_0xe179('0x10')]===_0xe179('0x11')&&!_0x5b0d60[_0xe179('0x1c')]){var _0x4b35d2;_0x4a2027[_0xe179('0x1d')][_0xe179('0x1e')]({'where':{'id':_0x5b0d60['SmsAccountId']},'raw':!![]})[_0xe179('0x17')](function(_0x3f4b8e){_0x4b35d2=_0x3f4b8e;if(_0x4b35d2&&_0x4b35d2['type']){switch(_0x4b35d2[_0xe179('0x1f')]){case _0xe179('0x20'):var _0x4f21ea=require(_0xe179('0x20'));if(_0x4b35d2['accountSid']&&_0x4b35d2[_0xe179('0x21')]&&_0x4b35d2[_0xe179('0x22')]){var _0x5baf9e=new _0x4f21ea(_0x4b35d2[_0xe179('0x23')],_0x4b35d2[_0xe179('0x21')]);_0x5baf9e[_0xe179('0x24')][_0xe179('0x25')]({'body':_0x5b0d60[_0xe179('0xb')],'to':_0x5b0d60[_0xe179('0x22')],'from':_0x4b35d2[_0xe179('0x22')],'statusCallback':_0x4b35d2[_0xe179('0x26')]+_0xe179('0x27')+_0x5b0d60['id']+_0xe179('0x28')+_0x4b35d2[_0xe179('0x29')]})[_0xe179('0x17')](function(_0x3f0ecb){if(_0x3f0ecb[_0xe179('0x2a')]){return _0x343c53[_0xe179('0x18')]({'messageId':_0x3f0ecb[_0xe179('0x2a')]});}})[_0xe179('0x1a')](function(_0x36926e){logger['error'](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x20'),util[_0xe179('0x2d')](_0x36926e,{'showHidden':![],'depth':null}));});}else{logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x20'),_0xe179('0x2e'));}break;case'skebby':var _0x23adef=_0xe179('0x2f');if(_0x4b35d2[_0xe179('0x30')]&&_0x4b35d2['password']){var _0x35cbf4={'recipient':[_0x5b0d60[_0xe179('0x22')]],'message':_0x5b0d60[_0xe179('0xb')],'message_type':_0x4b35d2['smsMethod']};if(_0x4b35d2[_0xe179('0x31')]&&_0x4b35d2[_0xe179('0x31')]!=='SI'){_0x35cbf4[_0xe179('0x32')]=_0x4b35d2['phone'];}var _0x58c200={'url':_0x23adef+_0xe179('0x33')+_0x4b35d2[_0xe179('0x30')]+'&password='+_0x4b35d2['password'],'method':_0xe179('0x34')};rp(_0x58c200)[_0xe179('0x17')](function(_0x505a58){var _0x8b73b4=_0x505a58['split'](';');var _0x7e4d7b={'user_key':_0x8b73b4[0x0],'session_key':_0x8b73b4[0x1]};_0x58c200={'url':_0x23adef+'sms','method':_0xe179('0x35'),'headers':{'user_key':_0x7e4d7b[_0xe179('0x36')],'Session_key':_0x7e4d7b[_0xe179('0x37')]},'json':!![],'body':_0x35cbf4};return rp(_0x58c200);})['then'](function(_0x428323){if(_0x428323[_0xe179('0x38')]>=0x1){var _0x4dd864={'messageId':_0x428323['internal_order_id']};if(_0x4b35d2[_0xe179('0x31')]!=='GP'||!_0x4b35d2['deliveryReport']){_0x4dd864[_0xe179('0x39')]=!![];}return _0x343c53['update'](_0x4dd864);}else{return logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x3a'),util['inspect'](_0x428323,{'showHidden':![],'depth':null}));}})[_0xe179('0x1a')](function(_0x11dee6){return logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x3a'),util[_0xe179('0x2d')](_0x11dee6,{'showHidden':![],'depth':null}));});}else{logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),'skebby',_0xe179('0x3b'));}break;case _0xe179('0x3c'):if(_0x4b35d2['authToken']){var _0xde8830={'recipient':_0x5b0d60['phone'],'message':_0x5b0d60['body'],'sender':_0x4b35d2[_0xe179('0x3d')]||_0x4b35d2['phone'],'authorization':_0x4b35d2[_0xe179('0x21')]};var _0x23d810={'method':'POST','uri':'https://smsapi.connectel.se/api/send/','body':_0xde8830,'json':!![]};rp(_0x23d810)[_0xe179('0x17')](function(_0x37ecf2){var _0x1d21cf={'messageId':_0x37ecf2['requestid']};if(!_0x4b35d2['deliveryReport']){_0x1d21cf[_0xe179('0x39')]=!![];}return _0x343c53[_0xe179('0x18')](_0x1d21cf);})[_0xe179('0x1a')](function(_0x10a8d4){logger['error'](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x3c'),util['inspect'](_0x10a8d4,{'showHidden':![],'depth':null}));});}else{logger[_0xe179('0x1b')](_0xe179('0x2b'),'afterCreate',_0xe179('0x3c'),'Missing\x20parameters:\x20authToken');}break;case _0xe179('0x3e'):if(_0x4b35d2[_0xe179('0x30')]&&_0x4b35d2[_0xe179('0x3f')]){var _0xde8830={'messages':[{'source':_0xe179('0x40'),'to':_0x5b0d60[_0xe179('0x22')],'body':_0x5b0d60[_0xe179('0xb')],'from':_0x4b35d2[_0xe179('0x3d')]||_0x4b35d2['phone']}]};var _0x3ccb2a=util[_0xe179('0x41')]('%s:%s',_0x4b35d2['username'],_0x4b35d2[_0xe179('0x3f')]);var _0x23d810={'method':_0xe179('0x35'),'uri':_0xe179('0x42'),'body':_0xde8830,'headers':{'Authorization':util[_0xe179('0x41')](_0xe179('0x43'),new Buffer(_0x3ccb2a)[_0xe179('0x44')]('base64'))},'json':!![]};rp(_0x23d810)[_0xe179('0x17')](function(_0x341f6a){if(_0x341f6a[_0xe179('0x45')]>=0xc8&&_0x341f6a[_0xe179('0x45')]<=0xce){if(_0x341f6a[_0xe179('0x46')]&&_0x341f6a[_0xe179('0x46')][_0xe179('0x47')]>0x0){var _0x19022f=_[_0xe179('0x48')](_0x341f6a[_0xe179('0x46')][_0xe179('0x24')]);var _0x259aaf={'messageId':_0x19022f[_0xe179('0x49')]};if(!_0x4b35d2[_0xe179('0x4a')]){_0x259aaf['read']=!![];}return _0x343c53[_0xe179('0x18')](_0x259aaf);}else{logger['error'](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x4b'),util['inspect'](_0x341f6a,{'showHidden':![],'depth':null}));}}else{logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x4b'),util[_0xe179('0x2d')](_0x341f6a,{'showHidden':![],'depth':null}));}})[_0xe179('0x1a')](function(_0xef994c){logger[_0xe179('0x1b')](_0xe179('0x2b'),'afterCreate',_0xe179('0x4b'),util['inspect'](_0xef994c,{'showHidden':![],'depth':null}));});}else{logger[_0xe179('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','clickSend',_0xe179('0x3b'));}break;case _0xe179('0x4c'):if(_0x4b35d2[_0xe179('0x4d')]&&_0x4b35d2['authToken']){var _0xde8830={'dst':_0x5b0d60[_0xe179('0x22')],'text':_0x5b0d60[_0xe179('0xb')],'src':_0x4b35d2[_0xe179('0x3d')]||_0x4b35d2['phone'],'url':_0x4b35d2['remote']+_0xe179('0x27')+_0x5b0d60['id']+_0xe179('0x28')+_0x4b35d2[_0xe179('0x29')]};var _0x3ccb2a=util[_0xe179('0x41')]('%s:%s',_0x4b35d2[_0xe179('0x4d')],_0x4b35d2[_0xe179('0x21')]);var _0x23d810={'method':_0xe179('0x35'),'uri':util[_0xe179('0x41')](_0xe179('0x4e'),_0x4b35d2['authId']),'body':_0xde8830,'headers':{'Authorization':util['format'](_0xe179('0x43'),new Buffer(_0x3ccb2a)[_0xe179('0x44')]('base64'))},'json':!![]};rp(_0x23d810)[_0xe179('0x17')](function(_0x3b9dd1){var _0x288a2b={'messageId':_0x3b9dd1[_0xe179('0x4f')][0x0]};return _0x343c53[_0xe179('0x18')](_0x288a2b);})['catch'](function(_0x49c752){logger[_0xe179('0x1b')](_0xe179('0x2b'),'afterCreate',_0xe179('0x4c'),util['inspect'](_0x49c752,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x4c'),_0xe179('0x50'));}break;case'infobip':if(_0x4b35d2[_0xe179('0x30')]&&_0x4b35d2['password']){if(_0x4b35d2[_0xe179('0x51')]){var _0x5ab96b={'method':_0xe179('0x35'),'uri':_0x4b35d2[_0xe179('0x51')]+_0xe179('0x52'),'body':{'username':_0x4b35d2['username'],'password':_0x4b35d2[_0xe179('0x3f')]},'json':!![]};return rp(_0x5ab96b)['then'](function(_0x44d322){var _0x553ce6={'method':'POST','uri':_0x4b35d2[_0xe179('0x51')]+_0xe179('0x53'),'body':{'messages':[{'from':_0x4b35d2['phone'],'destinations':[{'to':_0x5b0d60['phone']}],'text':_0x5b0d60[_0xe179('0xb')],'notifyUrl':_0x4b35d2[_0xe179('0x26')]+_0xe179('0x27')+_0x5b0d60['id']+_0xe179('0x28')+_0x4b35d2[_0xe179('0x29')],'notifyContentType':'application/json','callbackData':_0x4b35d2[_0xe179('0x22')]+';'+_0x5b0d60[_0xe179('0xb')]}]},'headers':{'Authorization':_0xe179('0x54')+_0x44d322['token']},'json':!![]};return rp(_0x553ce6)['then'](function(_0x4805d8){if(_0x4805d8[_0xe179('0x24')]){var _0x2b9577={'messageId':_0x4805d8[_0xe179('0x24')][0x0][_0xe179('0xa')]};if(!_0x4b35d2[_0xe179('0x4a')]){_0x2b9577[_0xe179('0x39')]=!![];}return _0x343c53[_0xe179('0x18')](_0x2b9577);}else{return logger[_0xe179('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xe179('0x2c'),_0xe179('0x55'),util['inspect'](_0x4805d8,{'showHidden':![],'depth':null}));}});})[_0xe179('0x1a')](function(_0xf068a4){return logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),'infobip',util[_0xe179('0x2d')](_0xf068a4,{'showHidden':![],'depth':null}));});}else{logger[_0xe179('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','infobip','Missing\x20parameters:\x20base_url');}}else{logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x55'),'Missing\x20parameters:\x20username,\x20password');}break;case _0xe179('0x56'):var _0xcd33a2=require(_0xe179('0x57'));if(_0x4b35d2[_0xe179('0x58')]){var _0x152e76={};_0x152e76[_0xe179('0x59')]=_0x4b35d2['username'];_0x152e76[_0xe179('0x22')]=_0x5b0d60[_0xe179('0x22')];_0x152e76[_0xe179('0x32')]=_0x4b35d2['phone'];_0x152e76[_0xe179('0x5a')]=_0x5b0d60[_0xe179('0xb')];_0x152e76[_0xe179('0x5b')]=+new Date();var _0x4a9909='';var _0x345419='';var _0x59f1ee=Object['keys'](_0x152e76);_0x59f1ee['sort']();for(var _0x108085=0x0;_0x108085<_0x59f1ee['length'];_0x108085++){if(_0x4a9909!=''){_0x4a9909+='&';}_0x4a9909+=_0x59f1ee[_0x108085]+'='+encodeURIComponent(_0x152e76[_0x59f1ee[_0x108085]]);_0x345419+=_0x152e76[_0x59f1ee[_0x108085]];}_0x345419+=_0x4b35d2[_0xe179('0x58')];_0x345419=_0xcd33a2[_0xe179('0x5c')]('md5')[_0xe179('0x18')](_0x345419)[_0xe179('0x5d')](_0xe179('0x5e'));if(_0x4a9909!==''){_0x4a9909+='&';}_0x4a9909+=_0xe179('0x5f')+_0x345419;var _0x58c200={'method':_0xe179('0x34'),'uri':'https://sms.csc.lv/external/get/send.php?'+_0x4a9909,'json':!![]};return rp(_0x58c200)[_0xe179('0x17')](function(_0x96818e){var _0x398f2c=Object[_0xe179('0x60')](_0x96818e);if(_0x96818e[_0x398f2c[0x0]][_0xe179('0x1b')]&&parseInt(_0x96818e[_0x398f2c[0x0]]['error'])===0x0){var _0x3ccbce={'messageId':_0x96818e[_0x398f2c[0x0]][_0xe179('0x61')]};if(!_0x4b35d2[_0xe179('0x4a')]){_0x3ccbce[_0xe179('0x39')]=!![];}return _0x343c53[_0xe179('0x18')](_0x3ccbce);}else{return logger[_0xe179('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xe179('0x2c'),_0xe179('0x56'),util['inspect'](_0x96818e[_0xe179('0x1b')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x5d6cff){return logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),'csc',util[_0xe179('0x2d')](_0x5d6cff,{'showHidden':![],'depth':null}));});}else{logger[_0xe179('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xe179('0x2c'),_0xe179('0x56'),_0xe179('0x62'));}break;case _0xe179('0x63'):if(_0x4b35d2['apiKey']){var _0x29a658={'method':_0xe179('0x35'),'uri':_0xe179('0x64'),'headers':{'Authorization':_0x4b35d2['apiKey']},'body':{'content':_0x5b0d60[_0xe179('0xb')],'to':[_0x5b0d60[_0xe179('0x22')]],'from':_0x4b35d2[_0xe179('0x22')],'binary':![],'clientMessageId':_0xe179('0x65'),'charset':_0xe179('0x66')},'json':!![]};rp(_0x29a658)[_0xe179('0x17')](function(_0x3ea8ae){if(!_0x3ea8ae['error']){var _0x264616={'messageId':_0x3ea8ae[_0xe179('0x24')][0x0][_0xe179('0x67')]};if(!_0x4b35d2[_0xe179('0x4a')]){_0x264616[_0xe179('0x39')]=!![];}return _0x343c53[_0xe179('0x18')](_0x264616);}else{return logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x63'),util[_0xe179('0x2d')](_0x3ea8ae[_0xe179('0x1b')],{'showHidden':![],'depth':null}));}})[_0xe179('0x1a')](function(_0x4465e4){return logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x63'),util[_0xe179('0x2d')](_0x4465e4,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x63'),_0xe179('0x62'));}break;case'intelepeer':if(_0x4b35d2[_0xe179('0x58')]){var _0x358ace={};var _0x58c200={'method':_0xe179('0x35'),'uri':_0xe179('0x68'),'headers':{'Authorization':_0xe179('0x69')+_0x4b35d2['apiKey'],'Content-Type':_0xe179('0x6a')},'body':{'from':_0x4b35d2[_0xe179('0x22')],'to':_0x5b0d60[_0xe179('0x22')],'text':_0x5b0d60[_0xe179('0xb')]},'json':!![]};return rp(_0x58c200)[_0xe179('0x17')](function(_0x49b0b9){if(_0x49b0b9[_0xe179('0x6b')]==0xca){_0x358ace[_0xe179('0x6c')]=_0x49b0b9;var _0x34fb02={'method':_0xe179('0x35'),'uri':_0xe179('0x6d'),'headers':{'Authorization':_0xe179('0x69')+_0x4b35d2[_0xe179('0x58')],'Content-Type':'application/json'},'body':{'refid':_0x358ace[_0xe179('0x6c')][_0xe179('0x6e')]},'json':!![]};return rp(_0x34fb02)['then'](function(_0x2e9436){_0x358ace[_0xe179('0x6f')]=_0x2e9436;var _0x11c497={'messageId':_0x358ace[_0xe179('0x6c')][_0xe179('0x6e')],'read':!![]};return _0x343c53[_0xe179('0x18')](_0x11c497);});}else{return logger[_0xe179('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xe179('0x2c'),_0xe179('0x70'),util[_0xe179('0x2d')](_0x49b0b9,{'showHidden':![],'depth':null}));}})['catch'](function(_0x5184fc){return logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x70'),util[_0xe179('0x2d')](_0x5184fc,{'showHidden':![],'depth':null}));});}else{return logger[_0xe179('0x1b')](_0xe179('0x2b'),_0xe179('0x2c'),_0xe179('0x70'),'Token\x20not\x20received');}break;}}})[_0xe179('0x71')](function(){_0x453cb6();});}else{_0x453cb6();}}},'charset':_0xe179('0x72'),'collate':_0xe179('0x73')});};