Built motion from commit (unavailable).|2.5.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 _0xbbee=['refid','finally','utf8mb4','util','../../config/logger','api','bluebird','path','../../config/environment','./smsMessage.attributes','define','sms_messages','messageId','fti_sms_messages','body','direction','toLowerCase','out','secret','isNil','UserId','SmsInteraction','then','update','createdAt','catch','error','SmsAccount','find','SmsAccountId','type','twilio','accountSid','authToken','phone','messages','remote','/api/sms/messages/','token','sid','SmsMessage,\x20%s,\x20%s,\x20%s','inspect','afterCreate','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','password','smsMethod','sender','login?username=','username','&password=','POST','user_key','session_key','internal_order_id','deliveryReport','read','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/send/','Missing\x20parameters:\x20authToken','xCALLY\x20Motion','%s:%s','Basic\x20%s','toString','base64','http_code','data','head','message_id','clickSend','plivo','authId','https://api.plivo.com/v1/Account/%s/Message/','format','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','/status?token=','application/json','IBSSO\x20','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','login','timestamp','createHash','md5','digest','hex','signature=','GET','/external/get/send.php?','keys','id_sms','Missing\x20parameters:\x20apiKey','clickatell','https://platform.clickatell.com/messages','apiMessageId','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','code','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xbbee,0x1bb));var _0xebbe=function(_0x4ed854,_0x252d23){_0x4ed854=_0x4ed854-0x0;var _0x5ca6bc=_0xbbee[_0x4ed854];return _0x5ca6bc;};'use strict';var _=require('lodash');var util=require(_0xebbe('0x0'));var logger=require(_0xebbe('0x1'))(_0xebbe('0x2'));var moment=require('moment');var BPromise=require(_0xebbe('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xebbe('0x4'));var rimraf=require('rimraf');var config=require(_0xebbe('0x5'));var attributes=require(_0xebbe('0x6'));module['exports']=function(_0x92afd3,_0x572058){return _0x92afd3[_0xebbe('0x7')]('SmsMessage',attributes,{'tableName':_0xebbe('0x8'),'paranoid':![],'indexes':[{'name':_0xebbe('0x9'),'fields':[_0xebbe('0x9')]},{'name':_0xebbe('0xa'),'fields':[_0xebbe('0xb')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x1aef61,_0x239183,_0x1ff914){var _0x19eb26=_0x92afd3['models'];var _0xc9124e=_0x1aef61['get']({'plain':!![]});if(_0xc9124e[_0xebbe('0xc')][_0xebbe('0xd')]()==='in'||_0xc9124e[_0xebbe('0xc')][_0xebbe('0xd')]()===_0xebbe('0xe')&&!_0xc9124e[_0xebbe('0xf')]&&!_[_0xebbe('0x10')](_0xc9124e[_0xebbe('0x11')])){_0x19eb26[_0xebbe('0x12')]['findOne']({'where':{'id':_0xc9124e['SmsInteractionId']}})[_0xebbe('0x13')](function(_0x108973){if(_0x108973){_0x108973[_0xebbe('0x14')]({'lastMsgAt':_0xc9124e[_0xebbe('0x15')],'lastMsgDirection':_0xc9124e['direction']['toLowerCase']()});}})[_0xebbe('0x16')](function(_0xc4ef88){console[_0xebbe('0x17')](_0xc4ef88);});}if(_0xc9124e[_0xebbe('0xc')]===_0xebbe('0xe')&&!_0xc9124e[_0xebbe('0xf')]){var _0x1c3d83;_0x19eb26[_0xebbe('0x18')][_0xebbe('0x19')]({'where':{'id':_0xc9124e[_0xebbe('0x1a')]},'raw':!![]})[_0xebbe('0x13')](function(_0x180e68){_0x1c3d83=_0x180e68;if(_0x1c3d83&&_0x1c3d83[_0xebbe('0x1b')]){switch(_0x1c3d83[_0xebbe('0x1b')]){case _0xebbe('0x1c'):var _0x122b9e=require(_0xebbe('0x1c'));if(_0x1c3d83[_0xebbe('0x1d')]&&_0x1c3d83[_0xebbe('0x1e')]&&_0x1c3d83[_0xebbe('0x1f')]){var _0x36ff49=new _0x122b9e(_0x1c3d83[_0xebbe('0x1d')],_0x1c3d83[_0xebbe('0x1e')]);_0x36ff49[_0xebbe('0x20')]['create']({'body':_0xc9124e[_0xebbe('0xb')],'to':_0xc9124e[_0xebbe('0x1f')],'from':_0x1c3d83[_0xebbe('0x1f')],'statusCallback':_0x1c3d83[_0xebbe('0x21')]+_0xebbe('0x22')+_0xc9124e['id']+'/status?token='+_0x1c3d83[_0xebbe('0x23')]})[_0xebbe('0x13')](function(_0x3b18e5){if(_0x3b18e5[_0xebbe('0x24')]){return _0x1aef61[_0xebbe('0x14')]({'messageId':_0x3b18e5[_0xebbe('0x24')]});}})['catch'](function(_0x42286d){logger[_0xebbe('0x17')](_0xebbe('0x25'),'afterCreate',_0xebbe('0x1c'),util[_0xebbe('0x26')](_0x42286d,{'showHidden':![],'depth':null}));});}else{logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),'twilio',_0xebbe('0x28'));}break;case _0xebbe('0x29'):var _0x51738a='https://api.skebby.it/API/v1.0/REST/';if(_0x1c3d83['username']&&_0x1c3d83[_0xebbe('0x2a')]){var _0x1b1a07={'recipient':[_0xc9124e[_0xebbe('0x1f')]],'message':_0xc9124e['body'],'message_type':_0x1c3d83[_0xebbe('0x2b')]};if(_0x1c3d83[_0xebbe('0x2b')]&&_0x1c3d83[_0xebbe('0x2b')]!=='SI'){_0x1b1a07[_0xebbe('0x2c')]=_0x1c3d83[_0xebbe('0x1f')];}var _0x52903a={'url':_0x51738a+_0xebbe('0x2d')+_0x1c3d83[_0xebbe('0x2e')]+_0xebbe('0x2f')+_0x1c3d83[_0xebbe('0x2a')],'method':'GET'};rp(_0x52903a)[_0xebbe('0x13')](function(_0x364054){var _0x51b45b=_0x364054['split'](';');var _0x639e37={'user_key':_0x51b45b[0x0],'session_key':_0x51b45b[0x1]};_0x52903a={'url':_0x51738a+'sms','method':_0xebbe('0x30'),'headers':{'user_key':_0x639e37[_0xebbe('0x31')],'Session_key':_0x639e37[_0xebbe('0x32')]},'json':!![],'body':_0x1b1a07};return rp(_0x52903a);})[_0xebbe('0x13')](function(_0x24ab32){if(_0x24ab32['total_sent']>=0x1){var _0xfa577f={'messageId':_0x24ab32[_0xebbe('0x33')]};if(_0x1c3d83[_0xebbe('0x2b')]!=='GP'||!_0x1c3d83[_0xebbe('0x34')]){_0xfa577f[_0xebbe('0x35')]=!![];}return _0x1aef61[_0xebbe('0x14')](_0xfa577f);}else{return logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x29'),util[_0xebbe('0x26')](_0x24ab32,{'showHidden':![],'depth':null}));}})[_0xebbe('0x16')](function(_0x57ebcc){return logger['error'](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x29'),util[_0xebbe('0x26')](_0x57ebcc,{'showHidden':![],'depth':null}));});}else{logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),'skebby',_0xebbe('0x36'));}break;case _0xebbe('0x37'):if(_0x1c3d83[_0xebbe('0x1e')]){var _0x5b94ad={'recipient':_0xc9124e[_0xebbe('0x1f')],'message':_0xc9124e['body'],'sender':_0x1c3d83[_0xebbe('0x38')]||_0x1c3d83[_0xebbe('0x1f')],'authorization':_0x1c3d83['authToken']};var _0x239183={'method':_0xebbe('0x30'),'uri':_0xebbe('0x39'),'body':_0x5b94ad,'json':!![]};rp(_0x239183)[_0xebbe('0x13')](function(_0x2ed34c){var _0x1754bf={'messageId':_0x2ed34c['requestid']};if(!_0x1c3d83['deliveryReport']){_0x1754bf[_0xebbe('0x35')]=!![];}return _0x1aef61[_0xebbe('0x14')](_0x1754bf);})[_0xebbe('0x16')](function(_0x4b58e4){logger[_0xebbe('0x17')](_0xebbe('0x25'),'afterCreate',_0xebbe('0x37'),util[_0xebbe('0x26')](_0x4b58e4,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xebbe('0x25'),_0xebbe('0x27'),'connectel',_0xebbe('0x3a'));}break;case'clicksend':if(_0x1c3d83['username']&&_0x1c3d83[_0xebbe('0x2a')]){var _0x5b94ad={'messages':[{'source':_0xebbe('0x3b'),'to':_0xc9124e[_0xebbe('0x1f')],'body':_0xc9124e['body'],'from':_0x1c3d83[_0xebbe('0x38')]||_0x1c3d83[_0xebbe('0x1f')]}]};var _0x29f20a=util['format'](_0xebbe('0x3c'),_0x1c3d83[_0xebbe('0x2e')],_0x1c3d83[_0xebbe('0x2a')]);var _0x239183={'method':'POST','uri':'https://rest.clicksend.com/v3/sms/send','body':_0x5b94ad,'headers':{'Authorization':util['format'](_0xebbe('0x3d'),new Buffer(_0x29f20a)[_0xebbe('0x3e')](_0xebbe('0x3f')))},'json':!![]};rp(_0x239183)[_0xebbe('0x13')](function(_0x2b0165){if(_0x2b0165[_0xebbe('0x40')]>=0xc8&&_0x2b0165[_0xebbe('0x40')]<=0xce){if(_0x2b0165[_0xebbe('0x41')]&&_0x2b0165[_0xebbe('0x41')]['queued_count']>0x0){var _0x4846ac=_[_0xebbe('0x42')](_0x2b0165[_0xebbe('0x41')][_0xebbe('0x20')]);var _0x5470cf={'messageId':_0x4846ac[_0xebbe('0x43')]};if(!_0x1c3d83[_0xebbe('0x34')]){_0x5470cf['read']=!![];}return _0x1aef61[_0xebbe('0x14')](_0x5470cf);}else{logger['error'](_0xebbe('0x25'),_0xebbe('0x27'),'clickSend',util[_0xebbe('0x26')](_0x2b0165,{'showHidden':![],'depth':null}));}}else{logger['error'](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x44'),util[_0xebbe('0x26')](_0x2b0165,{'showHidden':![],'depth':null}));}})['catch'](function(_0x51cee3){logger[_0xebbe('0x17')](_0xebbe('0x25'),'afterCreate',_0xebbe('0x44'),util[_0xebbe('0x26')](_0x51cee3,{'showHidden':![],'depth':null}));});}else{logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x44'),_0xebbe('0x36'));}break;case _0xebbe('0x45'):if(_0x1c3d83['authId']&&_0x1c3d83['authToken']){var _0x5b94ad={'dst':_0xc9124e[_0xebbe('0x1f')],'text':_0xc9124e[_0xebbe('0xb')],'src':_0x1c3d83['senderString']||_0x1c3d83[_0xebbe('0x1f')],'url':_0x1c3d83[_0xebbe('0x21')]+_0xebbe('0x22')+_0xc9124e['id']+'/status?token='+_0x1c3d83['token']};var _0x29f20a=util['format']('%s:%s',_0x1c3d83[_0xebbe('0x46')],_0x1c3d83[_0xebbe('0x1e')]);var _0x239183={'method':'POST','uri':util['format'](_0xebbe('0x47'),_0x1c3d83[_0xebbe('0x46')]),'body':_0x5b94ad,'headers':{'Authorization':util[_0xebbe('0x48')](_0xebbe('0x3d'),new Buffer(_0x29f20a)[_0xebbe('0x3e')](_0xebbe('0x3f')))},'json':!![]};rp(_0x239183)['then'](function(_0x2bf474){var _0x24dd9c={'messageId':_0x2bf474[_0xebbe('0x49')][0x0]};return _0x1aef61['update'](_0x24dd9c);})[_0xebbe('0x16')](function(_0x22581c){logger['error'](_0xebbe('0x25'),_0xebbe('0x27'),'plivo',util['inspect'](_0x22581c,{'showHidden':![],'depth':null}));});}else{logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x45'),_0xebbe('0x4a'));}break;case _0xebbe('0x4b'):if(_0x1c3d83[_0xebbe('0x2e')]&&_0x1c3d83[_0xebbe('0x2a')]){if(_0x1c3d83[_0xebbe('0x4c')]){var _0x45975c={'method':'POST','uri':_0x1c3d83['baseUrl']+_0xebbe('0x4d'),'body':{'username':_0x1c3d83['username'],'password':_0x1c3d83[_0xebbe('0x2a')]},'json':!![]};return rp(_0x45975c)[_0xebbe('0x13')](function(_0x38d4a7){var _0x38d1b2={'method':_0xebbe('0x30'),'uri':_0x1c3d83[_0xebbe('0x4c')]+_0xebbe('0x4e'),'body':{'messages':[{'from':_0x1c3d83[_0xebbe('0x1f')],'destinations':[{'to':_0xc9124e[_0xebbe('0x1f')]}],'text':_0xc9124e['body'],'notifyUrl':_0x1c3d83[_0xebbe('0x21')]+_0xebbe('0x22')+_0xc9124e['id']+_0xebbe('0x4f')+_0x1c3d83[_0xebbe('0x23')],'notifyContentType':_0xebbe('0x50'),'callbackData':_0x1c3d83[_0xebbe('0x1f')]+';'+_0xc9124e[_0xebbe('0xb')]}]},'headers':{'Authorization':_0xebbe('0x51')+_0x38d4a7['token']},'json':!![]};return rp(_0x38d1b2)[_0xebbe('0x13')](function(_0x1f5d6c){if(_0x1f5d6c[_0xebbe('0x20')]){var _0x5c673a={'messageId':_0x1f5d6c[_0xebbe('0x20')][0x0]['messageId']};if(!_0x1c3d83[_0xebbe('0x34')]){_0x5c673a[_0xebbe('0x35')]=!![];}return _0x1aef61[_0xebbe('0x14')](_0x5c673a);}else{return logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x4b'),util[_0xebbe('0x26')](_0x1f5d6c,{'showHidden':![],'depth':null}));}});})[_0xebbe('0x16')](function(_0x44d184){return logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x4b'),util[_0xebbe('0x26')](_0x44d184,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xebbe('0x27'),_0xebbe('0x4b'),_0xebbe('0x52'));}}else{logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x4b'),_0xebbe('0x36'));}break;case _0xebbe('0x53'):var _0x2bff48=require(_0xebbe('0x54'));if(_0x1c3d83[_0xebbe('0x55')]){var _0x522696={};_0x522696[_0xebbe('0x56')]=_0x1c3d83['username'];_0x522696[_0xebbe('0x1f')]=_0xc9124e[_0xebbe('0x1f')];_0x522696[_0xebbe('0x2c')]=_0x1c3d83['phone'];_0x522696['text']=_0xc9124e[_0xebbe('0xb')];_0x522696[_0xebbe('0x57')]=+new Date();var _0x46ae80='';var _0x7ffe77='';var _0x36a144=Object['keys'](_0x522696);_0x36a144['sort']();for(var _0x577f0d=0x0;_0x577f0d<_0x36a144['length'];_0x577f0d++){if(_0x46ae80!=''){_0x46ae80+='&';}_0x46ae80+=_0x36a144[_0x577f0d]+'='+encodeURIComponent(_0x522696[_0x36a144[_0x577f0d]]);_0x7ffe77+=_0x522696[_0x36a144[_0x577f0d]];}_0x7ffe77+=_0x1c3d83[_0xebbe('0x55')];_0x7ffe77=_0x2bff48[_0xebbe('0x58')](_0xebbe('0x59'))[_0xebbe('0x14')](_0x7ffe77)[_0xebbe('0x5a')](_0xebbe('0x5b'));if(_0x46ae80!==''){_0x46ae80+='&';}_0x46ae80+=_0xebbe('0x5c')+_0x7ffe77;var _0x52903a={'method':_0xebbe('0x5d'),'uri':_0x1c3d83[_0xebbe('0x4c')]+_0xebbe('0x5e')+_0x46ae80,'json':!![]};return rp(_0x52903a)[_0xebbe('0x13')](function(_0x1e3a59){var _0x130c43=Object[_0xebbe('0x5f')](_0x1e3a59);if(_0x1e3a59[_0x130c43[0x0]][_0xebbe('0x17')]&&parseInt(_0x1e3a59[_0x130c43[0x0]][_0xebbe('0x17')])===0x0){var _0x55448f={'messageId':_0x1e3a59[_0x130c43[0x0]][_0xebbe('0x60')]};if(!_0x1c3d83[_0xebbe('0x34')]){_0x55448f[_0xebbe('0x35')]=!![];}return _0x1aef61[_0xebbe('0x14')](_0x55448f);}else{return logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x53'),util[_0xebbe('0x26')](_0x1e3a59['error'],{'showHidden':![],'depth':null}));}})[_0xebbe('0x16')](function(_0x4043d7){return logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),'csc',util[_0xebbe('0x26')](_0x4043d7,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x53'),_0xebbe('0x61'));}break;case _0xebbe('0x62'):if(_0x1c3d83[_0xebbe('0x55')]){var _0xdf68cb={'method':_0xebbe('0x30'),'uri':_0xebbe('0x63'),'headers':{'Authorization':_0x1c3d83['apiKey']},'body':{'content':_0xc9124e[_0xebbe('0xb')],'to':[_0xc9124e['phone']],'from':_0x1c3d83['phone'],'binary':![],'clientMessageId':'uuid','charset':'UTF-8'},'json':!![]};rp(_0xdf68cb)[_0xebbe('0x13')](function(_0x45b130){if(!_0x45b130[_0xebbe('0x17')]){var _0x58d671={'messageId':_0x45b130[_0xebbe('0x20')][0x0][_0xebbe('0x64')]};if(!_0x1c3d83[_0xebbe('0x34')]){_0x58d671['read']=!![];}return _0x1aef61[_0xebbe('0x14')](_0x58d671);}else{return logger[_0xebbe('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xebbe('0x27'),'clickatell',util[_0xebbe('0x26')](_0x45b130['error'],{'showHidden':![],'depth':null}));}})[_0xebbe('0x16')](function(_0x1eabe0){return logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),'clickatell',util['inspect'](_0x1eabe0,{'showHidden':![],'depth':null}));});}else{logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),'clickatell','Missing\x20parameters:\x20apiKey');}break;case _0xebbe('0x65'):if(_0x1c3d83[_0xebbe('0x55')]){var _0x5c1fc2={};var _0x52903a={'method':_0xebbe('0x30'),'uri':_0xebbe('0x66'),'headers':{'Authorization':_0xebbe('0x67')+_0x1c3d83['apiKey'],'Content-Type':_0xebbe('0x50')},'body':{'from':_0x1c3d83[_0xebbe('0x1f')],'to':_0xc9124e[_0xebbe('0x1f')],'text':_0xc9124e[_0xebbe('0xb')]},'json':!![]};return rp(_0x52903a)[_0xebbe('0x13')](function(_0x21a501){if(_0x21a501[_0xebbe('0x68')]==0xca){_0x5c1fc2[_0xebbe('0x69')]=_0x21a501;var _0x15a754={'method':_0xebbe('0x30'),'uri':_0xebbe('0x6a'),'headers':{'Authorization':_0xebbe('0x67')+_0x1c3d83[_0xebbe('0x55')],'Content-Type':'application/json'},'body':{'refid':_0x5c1fc2[_0xebbe('0x69')]['refid']},'json':!![]};return rp(_0x15a754)[_0xebbe('0x13')](function(_0x5bdd60){_0x5c1fc2['status']=_0x5bdd60;var _0x23bbc9={'messageId':_0x5c1fc2[_0xebbe('0x69')][_0xebbe('0x6b')],'read':!![]};return _0x1aef61[_0xebbe('0x14')](_0x23bbc9);});}else{return logger[_0xebbe('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xebbe('0x27'),'intelepeer',util['inspect'](_0x21a501,{'showHidden':![],'depth':null}));}})[_0xebbe('0x16')](function(_0x43bfcf){return logger[_0xebbe('0x17')](_0xebbe('0x25'),_0xebbe('0x27'),_0xebbe('0x65'),util[_0xebbe('0x26')](_0x43bfcf,{'showHidden':![],'depth':null}));});}else{return logger[_0xebbe('0x17')](_0xebbe('0x25'),'afterCreate',_0xebbe('0x65'),'Token\x20not\x20received');}break;}}})[_0xebbe('0x6c')](function(){_0x1ff914();});}else{_0x1ff914();}}},'charset':_0xebbe('0x6d'),'collate':'utf8mb4_unicode_ci'});};