Built motion from commit (unavailable).|2.5.7
[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 _0x317a=['status','Token\x20not\x20received','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','./smsMessage.attributes','exports','define','sms_messages','messageId','fti_sms_messages','body','get','direction','toLowerCase','out','UserId','SmsInteraction','createdAt','catch','error','SmsAccount','find','then','type','twilio','accountSid','authToken','phone','messages','remote','/api/sms/messages/','/status?token=','sid','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','username','smsMethod','sender','password','GET','split','sms','POST','user_key','total_sent','deliveryReport','read','skebby','Missing\x20parameters:\x20username,\x20password','senderString','https://smsapi.connectel.se/api/v2/send/','requestid','update','connectel','clicksend','xCALLY\x20Motion','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','base64','http_code','data','queued_count','head','message_id','clickSend','authId','token','format','https://api.plivo.com/v1/Account/%s/Message/','toString','plivo','Missing\x20parameters:\x20authId,\x20authToken','baseUrl','/sms/2/text/advanced','application/json','infobip','Missing\x20parameters:\x20base_url','crypto','apiKey','login','text','timestamp','sort','length','createHash','md5','digest','hex','/external/get/send.php?','id_sms','csc','Missing\x20parameters:\x20apiKey','https://platform.clickatell.com/messages','uuid','UTF-8','apiMessageId','clickatell','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','https://api.intelepeer.com/_rest/v4/app/sms/mdr','refid'];(function(_0x484e36,_0x4482d8){var _0xafc85d=function(_0xaba9c8){while(--_0xaba9c8){_0x484e36['push'](_0x484e36['shift']());}};_0xafc85d(++_0x4482d8);}(_0x317a,0x75));var _0xa317=function(_0x3b2526,_0x278079){_0x3b2526=_0x3b2526-0x0;var _0x5e40bf=_0x317a[_0x3b2526];return _0x5e40bf;};'use strict';var _=require(_0xa317('0x0'));var util=require(_0xa317('0x1'));var logger=require(_0xa317('0x2'))('api');var moment=require(_0xa317('0x3'));var BPromise=require('bluebird');var rp=require(_0xa317('0x4'));var fs=require('fs');var path=require(_0xa317('0x5'));var rimraf=require(_0xa317('0x6'));var config=require(_0xa317('0x7'));var attributes=require(_0xa317('0x8'));module[_0xa317('0x9')]=function(_0x2f0d8e,_0x2446a4){return _0x2f0d8e[_0xa317('0xa')]('SmsMessage',attributes,{'tableName':_0xa317('0xb'),'paranoid':![],'indexes':[{'name':'messageId','fields':[_0xa317('0xc')]},{'name':_0xa317('0xd'),'fields':[_0xa317('0xe')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x7819e8,_0x51641e,_0x31e675){var _0x3645d8=_0x2f0d8e['models'];var _0x1fb368=_0x7819e8[_0xa317('0xf')]({'plain':!![]});if(_0x1fb368[_0xa317('0x10')][_0xa317('0x11')]()==='in'||_0x1fb368[_0xa317('0x10')][_0xa317('0x11')]()===_0xa317('0x12')&&!_0x1fb368['secret']&&!_['isNil'](_0x1fb368[_0xa317('0x13')])){_0x3645d8[_0xa317('0x14')]['findOne']({'where':{'id':_0x1fb368['SmsInteractionId']}})['then'](function(_0x365b2e){if(_0x365b2e){_0x365b2e['update']({'lastMsgAt':_0x1fb368[_0xa317('0x15')],'lastMsgDirection':_0x1fb368[_0xa317('0x10')][_0xa317('0x11')]()});}})[_0xa317('0x16')](function(_0x56e8cc){console[_0xa317('0x17')](_0x56e8cc);});}if(_0x1fb368[_0xa317('0x10')]===_0xa317('0x12')&&!_0x1fb368['secret']){var _0x4c7910;_0x3645d8[_0xa317('0x18')][_0xa317('0x19')]({'where':{'id':_0x1fb368['SmsAccountId']},'raw':!![]})[_0xa317('0x1a')](function(_0x2b94e9){_0x4c7910=_0x2b94e9;if(_0x4c7910&&_0x4c7910[_0xa317('0x1b')]){switch(_0x4c7910[_0xa317('0x1b')]){case'twilio':var _0xe3b7eb=require(_0xa317('0x1c'));if(_0x4c7910[_0xa317('0x1d')]&&_0x4c7910[_0xa317('0x1e')]&&_0x4c7910[_0xa317('0x1f')]){var _0x5f3746=new _0xe3b7eb(_0x4c7910[_0xa317('0x1d')],_0x4c7910[_0xa317('0x1e')]);_0x5f3746[_0xa317('0x20')]['create']({'body':_0x1fb368[_0xa317('0xe')],'to':_0x1fb368[_0xa317('0x1f')],'from':_0x4c7910['phone'],'statusCallback':_0x4c7910[_0xa317('0x21')]+_0xa317('0x22')+_0x1fb368['id']+_0xa317('0x23')+_0x4c7910['token']})[_0xa317('0x1a')](function(_0x1008a1){if(_0x1008a1['sid']){return _0x7819e8['update']({'messageId':_0x1008a1[_0xa317('0x24')]});}})[_0xa317('0x16')](function(_0x4acac1){logger['error'](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x1c'),util[_0xa317('0x27')](_0x4acac1,{'showHidden':![],'depth':null}));});}else{logger[_0xa317('0x17')](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x1c'),_0xa317('0x28'));}break;case'skebby':var _0x33d0f9='https://api.skebby.it/API/v1.0/REST/';if(_0x4c7910[_0xa317('0x29')]&&_0x4c7910['password']){var _0x5bdafb={'recipient':[_0x1fb368['phone']],'message':_0x1fb368[_0xa317('0xe')],'message_type':_0x4c7910[_0xa317('0x2a')]};if(_0x4c7910['smsMethod']&&_0x4c7910[_0xa317('0x2a')]!=='SI'){_0x5bdafb[_0xa317('0x2b')]=_0x4c7910[_0xa317('0x1f')];}var _0x3f8340={'url':_0x33d0f9+'login?username='+_0x4c7910['username']+'&password='+_0x4c7910[_0xa317('0x2c')],'method':_0xa317('0x2d')};rp(_0x3f8340)[_0xa317('0x1a')](function(_0x5050a0){var _0x597bf3=_0x5050a0[_0xa317('0x2e')](';');var _0x29144c={'user_key':_0x597bf3[0x0],'session_key':_0x597bf3[0x1]};_0x3f8340={'url':_0x33d0f9+_0xa317('0x2f'),'method':_0xa317('0x30'),'headers':{'user_key':_0x29144c[_0xa317('0x31')],'Session_key':_0x29144c['session_key']},'json':!![],'body':_0x5bdafb};return rp(_0x3f8340);})[_0xa317('0x1a')](function(_0x42abc4){if(_0x42abc4[_0xa317('0x32')]>=0x1){var _0x179bf5={'messageId':_0x42abc4['internal_order_id']};if(_0x4c7910[_0xa317('0x2a')]!=='GP'||!_0x4c7910[_0xa317('0x33')]){_0x179bf5[_0xa317('0x34')]=!![];}return _0x7819e8['update'](_0x179bf5);}else{return logger[_0xa317('0x17')](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x35'),util[_0xa317('0x27')](_0x42abc4,{'showHidden':![],'depth':null}));}})[_0xa317('0x16')](function(_0x267f83){return logger[_0xa317('0x17')](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x35'),util[_0xa317('0x27')](_0x267f83,{'showHidden':![],'depth':null}));});}else{logger[_0xa317('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0xa317('0x35'),_0xa317('0x36'));}break;case'connectel':if(_0x4c7910['authToken']){var _0x451c06={'recipient':_0x1fb368[_0xa317('0x1f')],'message':_0x1fb368[_0xa317('0xe')],'sender':_0x4c7910[_0xa317('0x37')]||_0x4c7910['phone'],'authorization':_0x4c7910[_0xa317('0x1e')]};var _0x51641e={'method':_0xa317('0x30'),'uri':_0xa317('0x38'),'body':_0x451c06,'json':!![]};rp(_0x51641e)[_0xa317('0x1a')](function(_0x390b63){var _0x63e6b7={'messageId':_0x390b63[_0xa317('0x39')]};if(!_0x4c7910['deliveryReport']){_0x63e6b7[_0xa317('0x34')]=!![];}return _0x7819e8[_0xa317('0x3a')](_0x63e6b7);})[_0xa317('0x16')](function(_0x559066){logger[_0xa317('0x17')](_0xa317('0x25'),'afterCreate',_0xa317('0x3b'),util[_0xa317('0x27')](_0x559066,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x3b'),'Missing\x20parameters:\x20authToken');}break;case _0xa317('0x3c'):if(_0x4c7910[_0xa317('0x29')]&&_0x4c7910[_0xa317('0x2c')]){var _0x451c06={'messages':[{'source':_0xa317('0x3d'),'to':_0x1fb368[_0xa317('0x1f')],'body':_0x1fb368[_0xa317('0xe')],'from':_0x4c7910['senderString']||_0x4c7910[_0xa317('0x1f')]}]};var _0x331cd2=util['format'](_0xa317('0x3e'),_0x4c7910[_0xa317('0x29')],_0x4c7910[_0xa317('0x2c')]);var _0x51641e={'method':_0xa317('0x30'),'uri':_0xa317('0x3f'),'body':_0x451c06,'headers':{'Authorization':util['format'](_0xa317('0x40'),new Buffer(_0x331cd2)['toString'](_0xa317('0x41')))},'json':!![]};rp(_0x51641e)[_0xa317('0x1a')](function(_0x520a7f){if(_0x520a7f['http_code']>=0xc8&&_0x520a7f[_0xa317('0x42')]<=0xce){if(_0x520a7f[_0xa317('0x43')]&&_0x520a7f[_0xa317('0x43')][_0xa317('0x44')]>0x0){var _0x7f5f0b=_[_0xa317('0x45')](_0x520a7f['data']['messages']);var _0x1451ad={'messageId':_0x7f5f0b[_0xa317('0x46')]};if(!_0x4c7910['deliveryReport']){_0x1451ad[_0xa317('0x34')]=!![];}return _0x7819e8['update'](_0x1451ad);}else{logger[_0xa317('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0xa317('0x47'),util[_0xa317('0x27')](_0x520a7f,{'showHidden':![],'depth':null}));}}else{logger[_0xa317('0x17')](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x47'),util[_0xa317('0x27')](_0x520a7f,{'showHidden':![],'depth':null}));}})[_0xa317('0x16')](function(_0x22e7af){logger['error'](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x47'),util[_0xa317('0x27')](_0x22e7af,{'showHidden':![],'depth':null}));});}else{logger['error'](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x47'),_0xa317('0x36'));}break;case'plivo':if(_0x4c7910[_0xa317('0x48')]&&_0x4c7910['authToken']){var _0x451c06={'dst':_0x1fb368[_0xa317('0x1f')],'text':_0x1fb368['body'],'src':_0x4c7910[_0xa317('0x37')]||_0x4c7910['phone'],'url':_0x4c7910[_0xa317('0x21')]+_0xa317('0x22')+_0x1fb368['id']+_0xa317('0x23')+_0x4c7910[_0xa317('0x49')]};var _0x331cd2=util[_0xa317('0x4a')](_0xa317('0x3e'),_0x4c7910[_0xa317('0x48')],_0x4c7910[_0xa317('0x1e')]);var _0x51641e={'method':_0xa317('0x30'),'uri':util['format'](_0xa317('0x4b'),_0x4c7910[_0xa317('0x48')]),'body':_0x451c06,'headers':{'Authorization':util[_0xa317('0x4a')](_0xa317('0x40'),new Buffer(_0x331cd2)[_0xa317('0x4c')]('base64'))},'json':!![]};rp(_0x51641e)[_0xa317('0x1a')](function(_0x38da67){var _0x175afe={'messageId':_0x38da67['message_uuid'][0x0]};return _0x7819e8[_0xa317('0x3a')](_0x175afe);})['catch'](function(_0x59e3ba){logger[_0xa317('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xa317('0x26'),_0xa317('0x4d'),util['inspect'](_0x59e3ba,{'showHidden':![],'depth':null}));});}else{logger[_0xa317('0x17')](_0xa317('0x25'),'afterCreate','plivo',_0xa317('0x4e'));}break;case'infobip':if(_0x4c7910[_0xa317('0x29')]&&_0x4c7910[_0xa317('0x2c')]){if(_0x4c7910[_0xa317('0x4f')]){var _0x4ae2dd={'method':_0xa317('0x30'),'uri':_0x4c7910[_0xa317('0x4f')]+'/auth/1/session','body':{'username':_0x4c7910[_0xa317('0x29')],'password':_0x4c7910['password']},'json':!![]};return rp(_0x4ae2dd)[_0xa317('0x1a')](function(_0x5de47b){var _0x2f6a86={'method':_0xa317('0x30'),'uri':_0x4c7910[_0xa317('0x4f')]+_0xa317('0x50'),'body':{'messages':[{'from':_0x4c7910[_0xa317('0x1f')],'destinations':[{'to':_0x1fb368[_0xa317('0x1f')]}],'text':_0x1fb368['body'],'notifyUrl':_0x4c7910[_0xa317('0x21')]+_0xa317('0x22')+_0x1fb368['id']+'/status?token='+_0x4c7910[_0xa317('0x49')],'notifyContentType':_0xa317('0x51'),'callbackData':_0x4c7910[_0xa317('0x1f')]+';'+_0x1fb368[_0xa317('0xe')]}]},'headers':{'Authorization':'IBSSO\x20'+_0x5de47b[_0xa317('0x49')]},'json':!![]};return rp(_0x2f6a86)[_0xa317('0x1a')](function(_0x10852a){if(_0x10852a[_0xa317('0x20')]){var _0x20cef8={'messageId':_0x10852a['messages'][0x0][_0xa317('0xc')]};if(!_0x4c7910['deliveryReport']){_0x20cef8[_0xa317('0x34')]=!![];}return _0x7819e8[_0xa317('0x3a')](_0x20cef8);}else{return logger[_0xa317('0x17')](_0xa317('0x25'),'afterCreate',_0xa317('0x52'),util[_0xa317('0x27')](_0x10852a,{'showHidden':![],'depth':null}));}});})[_0xa317('0x16')](function(_0x424613){return logger[_0xa317('0x17')](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x52'),util[_0xa317('0x27')](_0x424613,{'showHidden':![],'depth':null}));});}else{logger[_0xa317('0x17')](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x52'),_0xa317('0x53'));}}else{logger[_0xa317('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0xa317('0x52'),_0xa317('0x36'));}break;case'csc':var _0xc25d73=require(_0xa317('0x54'));if(_0x4c7910[_0xa317('0x55')]){var _0x16bdaa={};_0x16bdaa[_0xa317('0x56')]=_0x4c7910[_0xa317('0x29')];_0x16bdaa['phone']=_0x1fb368[_0xa317('0x1f')];_0x16bdaa[_0xa317('0x2b')]=_0x4c7910[_0xa317('0x1f')];_0x16bdaa[_0xa317('0x57')]=_0x1fb368[_0xa317('0xe')];_0x16bdaa[_0xa317('0x58')]=+new Date();var _0x3be0d0='';var _0x2c1bf4='';var _0x17d5ef=Object['keys'](_0x16bdaa);_0x17d5ef[_0xa317('0x59')]();for(var _0x46b3cb=0x0;_0x46b3cb<_0x17d5ef[_0xa317('0x5a')];_0x46b3cb++){if(_0x3be0d0!=''){_0x3be0d0+='&';}_0x3be0d0+=_0x17d5ef[_0x46b3cb]+'='+encodeURIComponent(_0x16bdaa[_0x17d5ef[_0x46b3cb]]);_0x2c1bf4+=_0x16bdaa[_0x17d5ef[_0x46b3cb]];}_0x2c1bf4+=_0x4c7910[_0xa317('0x55')];_0x2c1bf4=_0xc25d73[_0xa317('0x5b')](_0xa317('0x5c'))['update'](_0x2c1bf4)[_0xa317('0x5d')](_0xa317('0x5e'));if(_0x3be0d0!==''){_0x3be0d0+='&';}_0x3be0d0+='signature='+_0x2c1bf4;var _0x3f8340={'method':'GET','uri':_0x4c7910[_0xa317('0x4f')]+_0xa317('0x5f')+_0x3be0d0,'json':!![]};return rp(_0x3f8340)[_0xa317('0x1a')](function(_0x458322){var _0x13e5e9=Object['keys'](_0x458322);if(_0x458322[_0x13e5e9[0x0]][_0xa317('0x17')]&&parseInt(_0x458322[_0x13e5e9[0x0]][_0xa317('0x17')])===0x0){var _0xc24b49={'messageId':_0x458322[_0x13e5e9[0x0]][_0xa317('0x60')]};if(!_0x4c7910[_0xa317('0x33')]){_0xc24b49[_0xa317('0x34')]=!![];}return _0x7819e8[_0xa317('0x3a')](_0xc24b49);}else{return logger['error'](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x61'),util[_0xa317('0x27')](_0x458322[_0xa317('0x17')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x25d31f){return logger['error'](_0xa317('0x25'),_0xa317('0x26'),'csc',util[_0xa317('0x27')](_0x25d31f,{'showHidden':![],'depth':null}));});}else{logger[_0xa317('0x17')](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x61'),_0xa317('0x62'));}break;case'clickatell':if(_0x4c7910[_0xa317('0x55')]){var _0x34ea5a={'method':'POST','uri':_0xa317('0x63'),'headers':{'Authorization':_0x4c7910[_0xa317('0x55')]},'body':{'content':_0x1fb368[_0xa317('0xe')],'to':[_0x1fb368[_0xa317('0x1f')]],'from':_0x4c7910[_0xa317('0x1f')],'binary':![],'clientMessageId':_0xa317('0x64'),'charset':_0xa317('0x65')},'json':!![]};rp(_0x34ea5a)[_0xa317('0x1a')](function(_0xe908f7){if(!_0xe908f7[_0xa317('0x17')]){var _0x124b3b={'messageId':_0xe908f7[_0xa317('0x20')][0x0][_0xa317('0x66')]};if(!_0x4c7910['deliveryReport']){_0x124b3b[_0xa317('0x34')]=!![];}return _0x7819e8[_0xa317('0x3a')](_0x124b3b);}else{return logger[_0xa317('0x17')](_0xa317('0x25'),'afterCreate',_0xa317('0x67'),util[_0xa317('0x27')](_0xe908f7[_0xa317('0x17')],{'showHidden':![],'depth':null}));}})[_0xa317('0x16')](function(_0x3e3543){return logger['error'](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x67'),util[_0xa317('0x27')](_0x3e3543,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xa317('0x26'),_0xa317('0x67'),_0xa317('0x62'));}break;case _0xa317('0x68'):if(_0x4c7910[_0xa317('0x55')]){var _0x44c4a0={};var _0x3f8340={'method':_0xa317('0x30'),'uri':_0xa317('0x69'),'headers':{'Authorization':_0xa317('0x6a')+_0x4c7910[_0xa317('0x55')],'Content-Type':_0xa317('0x51')},'body':{'from':_0x4c7910[_0xa317('0x1f')],'to':_0x1fb368[_0xa317('0x1f')],'text':_0x1fb368[_0xa317('0xe')]},'json':!![]};return rp(_0x3f8340)['then'](function(_0x476d07){if(_0x476d07['code']==0xca){_0x44c4a0['message']=_0x476d07;var _0x59ff34={'method':_0xa317('0x30'),'uri':_0xa317('0x6b'),'headers':{'Authorization':_0xa317('0x6a')+_0x4c7910[_0xa317('0x55')],'Content-Type':'application/json'},'body':{'refid':_0x44c4a0['message'][_0xa317('0x6c')]},'json':!![]};return rp(_0x59ff34)[_0xa317('0x1a')](function(_0x4f10f4){_0x44c4a0[_0xa317('0x6d')]=_0x4f10f4;var _0x55147e={'messageId':_0x44c4a0['message']['refid'],'read':!![]};return _0x7819e8[_0xa317('0x3a')](_0x55147e);});}else{return logger[_0xa317('0x17')](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x68'),util[_0xa317('0x27')](_0x476d07,{'showHidden':![],'depth':null}));}})['catch'](function(_0xf8ff4b){return logger[_0xa317('0x17')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xa317('0x26'),'intelepeer',util[_0xa317('0x27')](_0xf8ff4b,{'showHidden':![],'depth':null}));});}else{return logger['error'](_0xa317('0x25'),_0xa317('0x26'),_0xa317('0x68'),_0xa317('0x6e'));}break;}}})['finally'](function(){_0x31e675();});}else{_0x31e675();}}},'charset':_0xa317('0x6f'),'collate':_0xa317('0x70')});};