Built motion from commit (unavailable).|2.0.83
[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 _0x0177=['base64','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','csc','crypto','apiKey','sender','text','timestamp','keys','sort','length','md5','digest','hex','GET','https://sms.csc.lv/external/get/send.php?','id_sms','Missing\x20parameters:\x20apiKey','uuid','apiMessageId','clickatell','finally','utf8mb4','utf8mb4_unicode_ci','util','moment','bluebird','request-promise','./smsMessage.attributes','exports','define','SmsMessage','sms_messages','messageId','models','get','direction','toLowerCase','out','secret','isNil','UserId','SmsInteraction','createdAt','catch','SmsAccount','find','then','type','twilio','authToken','accountSid','body','/status?token=','sid','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','skebby','https://api.skebby.it/API/v1.0/REST/','username','password','phone','smsMethod','&password=','sms','user_key','session_key','total_sent','deliveryReport','read','update','error','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/send/','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','%s:%s','POST','https://rest.clicksend.com/v3/sms/send','format','Basic\x20%s','toString','http_code','data','queued_count','head','messages','clickSend','plivo','authId','remote','/api/sms/messages/','token','https://api.plivo.com/v1/Account/%s/Message/'];(function(_0x56a568,_0x586bf1){var _0x144fae=function(_0x5785a2){while(--_0x5785a2){_0x56a568['push'](_0x56a568['shift']());}};_0x144fae(++_0x586bf1);}(_0x0177,0x15a));var _0x7017=function(_0x17b7d9,_0x1a78b3){_0x17b7d9=_0x17b7d9-0x0;var _0x1600d4=_0x0177[_0x17b7d9];return _0x1600d4;};'use strict';var _=require('lodash');var util=require(_0x7017('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x7017('0x1'));var BPromise=require(_0x7017('0x2'));var rp=require(_0x7017('0x3'));var attributes=require(_0x7017('0x4'));module[_0x7017('0x5')]=function(_0xe6d1d5,_0x1d52b7){return _0xe6d1d5[_0x7017('0x6')](_0x7017('0x7'),attributes,{'tableName':_0x7017('0x8'),'paranoid':![],'indexes':[{'name':_0x7017('0x9'),'fields':[_0x7017('0x9')]}],'timestamps':!![],'hooks':{'afterCreate':function(_0x41eebc,_0x26f77b,_0x356686){var _0x49b63a=_0xe6d1d5[_0x7017('0xa')];var _0x4e98d4=_0x41eebc[_0x7017('0xb')]({'plain':!![]});if(_0x4e98d4[_0x7017('0xc')][_0x7017('0xd')]()==='in'||_0x4e98d4['direction'][_0x7017('0xd')]()===_0x7017('0xe')&&!_0x4e98d4[_0x7017('0xf')]&&!_[_0x7017('0x10')](_0x4e98d4[_0x7017('0x11')])){_0x49b63a[_0x7017('0x12')]['findOne']({'where':{'id':_0x4e98d4['SmsInteractionId']}})['then'](function(_0x5b8cd8){if(_0x5b8cd8){_0x5b8cd8['update']({'lastMsgAt':_0x4e98d4[_0x7017('0x13')],'lastMsgDirection':_0x4e98d4[_0x7017('0xc')][_0x7017('0xd')](),'lastMsgBody':_0x4e98d4['body']});}})[_0x7017('0x14')](function(_0x4cb38c){console['error'](_0x4cb38c);});}if(_0x4e98d4[_0x7017('0xc')]===_0x7017('0xe')&&!_0x4e98d4[_0x7017('0xf')]){var _0x2cffa0;_0x49b63a[_0x7017('0x15')][_0x7017('0x16')]({'where':{'id':_0x4e98d4['SmsAccountId']},'raw':!![]})[_0x7017('0x17')](function(_0x3db823){_0x2cffa0=_0x3db823;if(_0x2cffa0&&_0x2cffa0[_0x7017('0x18')]){switch(_0x2cffa0['type']){case _0x7017('0x19'):var _0x23499c=require(_0x7017('0x19'));if(_0x2cffa0['accountSid']&&_0x2cffa0[_0x7017('0x1a')]&&_0x2cffa0['phone']){var _0x11cd08=new _0x23499c(_0x2cffa0[_0x7017('0x1b')],_0x2cffa0[_0x7017('0x1a')]);_0x11cd08['messages']['create']({'body':_0x4e98d4[_0x7017('0x1c')],'to':_0x4e98d4['phone'],'from':_0x2cffa0['phone'],'statusCallback':_0x2cffa0['remote']+'/api/sms/messages/'+_0x4e98d4['id']+_0x7017('0x1d')+_0x2cffa0['token']})[_0x7017('0x17')](function(_0x2903e1){if(_0x2903e1[_0x7017('0x1e')]){return _0x41eebc['update']({'messageId':_0x2903e1[_0x7017('0x1e')]});}})[_0x7017('0x14')](function(_0x3421dd){logger['error'](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x19'),util[_0x7017('0x21')](_0x3421dd,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x7017('0x1f'),_0x7017('0x20'),'twilio','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x7017('0x22'):var _0x3710ac=_0x7017('0x23');if(_0x2cffa0[_0x7017('0x24')]&&_0x2cffa0[_0x7017('0x25')]){var _0x489533={'recipient':[_0x4e98d4[_0x7017('0x26')]],'message':_0x4e98d4[_0x7017('0x1c')],'message_type':_0x2cffa0[_0x7017('0x27')]};var _0x53cb50={'url':_0x3710ac+'login?username='+_0x2cffa0[_0x7017('0x24')]+_0x7017('0x28')+_0x2cffa0[_0x7017('0x25')],'method':'GET'};rp(_0x53cb50)[_0x7017('0x17')](function(_0xadd608){var _0x383f46=_0xadd608['split'](';');var _0x292979={'user_key':_0x383f46[0x0],'session_key':_0x383f46[0x1]};_0x53cb50={'url':_0x3710ac+_0x7017('0x29'),'method':'POST','headers':{'user_key':_0x292979[_0x7017('0x2a')],'Session_key':_0x292979[_0x7017('0x2b')]},'json':!![],'body':_0x489533};return rp(_0x53cb50);})['then'](function(_0x3cd6ec){if(_0x3cd6ec[_0x7017('0x2c')]>=0x1){var _0x497d78={'messageId':_0x3cd6ec['internal_order_id']};if(_0x2cffa0[_0x7017('0x27')]!=='GP'||!_0x2cffa0[_0x7017('0x2d')]){_0x497d78[_0x7017('0x2e')]=!![];}return _0x41eebc[_0x7017('0x2f')](_0x497d78);}else{return logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate',_0x7017('0x22'),util[_0x7017('0x21')](_0x3cd6ec,{'showHidden':![],'depth':null}));}})[_0x7017('0x14')](function(_0x8e58bf){return logger[_0x7017('0x30')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','skebby',util[_0x7017('0x21')](_0x8e58bf,{'showHidden':![],'depth':null}));});}else{logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),'skebby',_0x7017('0x31'));}break;case _0x7017('0x32'):if(_0x2cffa0['authToken']){var _0x383d6d={'recipient':_0x4e98d4[_0x7017('0x26')],'message':_0x4e98d4['body'],'sender':_0x2cffa0[_0x7017('0x33')]||_0x2cffa0[_0x7017('0x26')],'authorization':_0x2cffa0[_0x7017('0x1a')]};var _0x26f77b={'method':'POST','uri':_0x7017('0x34'),'body':_0x383d6d,'json':!![]};rp(_0x26f77b)[_0x7017('0x17')](function(_0x5e4c58){var _0x3e1f11={'messageId':_0x5e4c58['requestid']};if(!_0x2cffa0[_0x7017('0x2d')]){_0x3e1f11['read']=!![];}return _0x41eebc[_0x7017('0x2f')](_0x3e1f11);})[_0x7017('0x14')](function(_0x438bb4){logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate','connectel',util[_0x7017('0x21')](_0x438bb4,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x32'),_0x7017('0x35'));}break;case _0x7017('0x36'):if(_0x2cffa0['username']&&_0x2cffa0[_0x7017('0x25')]){var _0x383d6d={'messages':[{'source':_0x7017('0x37'),'to':_0x4e98d4[_0x7017('0x26')],'body':_0x4e98d4[_0x7017('0x1c')],'from':_0x2cffa0[_0x7017('0x33')]||_0x2cffa0['phone']}]};var _0x1ce974=util['format'](_0x7017('0x38'),_0x2cffa0[_0x7017('0x24')],_0x2cffa0[_0x7017('0x25')]);var _0x26f77b={'method':_0x7017('0x39'),'uri':_0x7017('0x3a'),'body':_0x383d6d,'headers':{'Authorization':util[_0x7017('0x3b')](_0x7017('0x3c'),new Buffer(_0x1ce974)[_0x7017('0x3d')]('base64'))},'json':!![]};rp(_0x26f77b)[_0x7017('0x17')](function(_0x1d7751){if(_0x1d7751[_0x7017('0x3e')]>=0xc8&&_0x1d7751[_0x7017('0x3e')]<=0xce){if(_0x1d7751[_0x7017('0x3f')]&&_0x1d7751[_0x7017('0x3f')][_0x7017('0x40')]>0x0){var _0x48e0ef=_[_0x7017('0x41')](_0x1d7751['data'][_0x7017('0x42')]);var _0x1b892a={'messageId':_0x48e0ef['message_id']};if(!_0x2cffa0[_0x7017('0x2d')]){_0x1b892a['read']=!![];}return _0x41eebc['update'](_0x1b892a);}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x7017('0x20'),'clickSend',util[_0x7017('0x21')](_0x1d7751,{'showHidden':![],'depth':null}));}}else{logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x43'),util[_0x7017('0x21')](_0x1d7751,{'showHidden':![],'depth':null}));}})['catch'](function(_0x4582f6){logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate',_0x7017('0x43'),util['inspect'](_0x4582f6,{'showHidden':![],'depth':null}));});}else{logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),'clickSend',_0x7017('0x31'));}break;case _0x7017('0x44'):if(_0x2cffa0[_0x7017('0x45')]&&_0x2cffa0[_0x7017('0x1a')]){var _0x383d6d={'dst':_0x4e98d4[_0x7017('0x26')],'text':_0x4e98d4[_0x7017('0x1c')],'src':_0x2cffa0[_0x7017('0x33')]||_0x2cffa0[_0x7017('0x26')],'url':_0x2cffa0[_0x7017('0x46')]+_0x7017('0x47')+_0x4e98d4['id']+_0x7017('0x1d')+_0x2cffa0[_0x7017('0x48')]};var _0x1ce974=util[_0x7017('0x3b')](_0x7017('0x38'),_0x2cffa0[_0x7017('0x45')],_0x2cffa0[_0x7017('0x1a')]);var _0x26f77b={'method':_0x7017('0x39'),'uri':util[_0x7017('0x3b')](_0x7017('0x49'),_0x2cffa0[_0x7017('0x45')]),'body':_0x383d6d,'headers':{'Authorization':util[_0x7017('0x3b')]('Basic\x20%s',new Buffer(_0x1ce974)[_0x7017('0x3d')](_0x7017('0x4a')))},'json':!![]};rp(_0x26f77b)[_0x7017('0x17')](function(_0xc27fb5){var _0x20f45d={'messageId':_0xc27fb5[_0x7017('0x4b')][0x0]};return _0x41eebc[_0x7017('0x2f')](_0x20f45d);})[_0x7017('0x14')](function(_0x568d12){logger['error'](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x44'),util[_0x7017('0x21')](_0x568d12,{'showHidden':![],'depth':null}));});}else{logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),'plivo',_0x7017('0x4c'));}break;case _0x7017('0x4d'):if(_0x2cffa0[_0x7017('0x24')]&&_0x2cffa0[_0x7017('0x25')]){if(_0x2cffa0[_0x7017('0x4e')]){var _0x431cd4={'method':'POST','uri':_0x2cffa0[_0x7017('0x4e')]+_0x7017('0x4f'),'body':{'username':_0x2cffa0['username'],'password':_0x2cffa0[_0x7017('0x25')]},'json':!![]};return rp(_0x431cd4)['then'](function(_0x1b66ea){var _0xcf1dd3={'method':'POST','uri':_0x2cffa0['baseUrl']+_0x7017('0x50'),'body':{'messages':[{'from':_0x2cffa0[_0x7017('0x26')],'destinations':[{'to':_0x4e98d4['phone']}],'text':_0x4e98d4['body'],'notifyUrl':_0x2cffa0[_0x7017('0x46')]+_0x7017('0x47')+_0x4e98d4['id']+_0x7017('0x1d')+_0x2cffa0[_0x7017('0x48')],'notifyContentType':_0x7017('0x51'),'callbackData':_0x2cffa0[_0x7017('0x26')]+';'+_0x4e98d4[_0x7017('0x1c')]}]},'headers':{'Authorization':_0x7017('0x52')+_0x1b66ea[_0x7017('0x48')]},'json':!![]};return rp(_0xcf1dd3)[_0x7017('0x17')](function(_0x264072){if(_0x264072[_0x7017('0x42')]){var _0x272f2b={'messageId':_0x264072[_0x7017('0x42')][0x0][_0x7017('0x9')]};if(!_0x2cffa0[_0x7017('0x2d')]){_0x272f2b[_0x7017('0x2e')]=!![];}return _0x41eebc[_0x7017('0x2f')](_0x272f2b);}else{return logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate',_0x7017('0x4d'),util[_0x7017('0x21')](_0x264072,{'showHidden':![],'depth':null}));}});})[_0x7017('0x14')](function(_0x6eb37){return logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x4d'),util[_0x7017('0x21')](_0x6eb37,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x4d'),'Missing\x20parameters:\x20base_url');}}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x7017('0x20'),_0x7017('0x4d'),_0x7017('0x31'));}case _0x7017('0x53'):var _0x402ade=require(_0x7017('0x54'));if(_0x2cffa0[_0x7017('0x55')]){var _0x2a6496={};_0x2a6496['login']=_0x2cffa0[_0x7017('0x24')];_0x2a6496[_0x7017('0x26')]=_0x4e98d4[_0x7017('0x26')];_0x2a6496[_0x7017('0x56')]=_0x2cffa0[_0x7017('0x26')];_0x2a6496[_0x7017('0x57')]=_0x4e98d4[_0x7017('0x1c')];_0x2a6496[_0x7017('0x58')]=+new Date();var _0x2cb738='';var _0xf9c667='';var _0x5de947=Object[_0x7017('0x59')](_0x2a6496);_0x5de947[_0x7017('0x5a')]();for(var _0x3f7061=0x0;_0x3f7061<_0x5de947[_0x7017('0x5b')];_0x3f7061++){if(_0x2cb738!=''){_0x2cb738+='&';}_0x2cb738+=_0x5de947[_0x3f7061]+'='+encodeURIComponent(_0x2a6496[_0x5de947[_0x3f7061]]);_0xf9c667+=_0x2a6496[_0x5de947[_0x3f7061]];}_0xf9c667+=_0x2cffa0[_0x7017('0x55')];_0xf9c667=_0x402ade['createHash'](_0x7017('0x5c'))[_0x7017('0x2f')](_0xf9c667)[_0x7017('0x5d')](_0x7017('0x5e'));if(_0x2cb738!==''){_0x2cb738+='&';}_0x2cb738+='signature='+_0xf9c667;var _0x53cb50={'method':_0x7017('0x5f'),'uri':_0x7017('0x60')+_0x2cb738,'json':!![]};return rp(_0x53cb50)['then'](function(_0x4e1d2e){var _0x3991b3=Object['keys'](_0x4e1d2e);if(_0x4e1d2e[_0x3991b3[0x0]]['error']&&parseInt(_0x4e1d2e[_0x3991b3[0x0]][_0x7017('0x30')])===0x0){var _0x257139={'messageId':_0x4e1d2e[_0x3991b3[0x0]][_0x7017('0x61')]};if(!_0x2cffa0[_0x7017('0x2d')]){_0x257139[_0x7017('0x2e')]=!![];}return _0x41eebc[_0x7017('0x2f')](_0x257139);}else{return logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),'csc',util[_0x7017('0x21')](_0x4e1d2e[_0x7017('0x30')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x3a8a3f){return logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate',_0x7017('0x53'),util[_0x7017('0x21')](_0x3a8a3f,{'showHidden':![],'depth':null}));});}else{logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x53'),_0x7017('0x62'));}case'clickatell':if(_0x2cffa0[_0x7017('0x55')]){var _0x3b6dd7={'method':_0x7017('0x39'),'uri':'https://platform.clickatell.com/messages','headers':{'Authorization':_0x2cffa0[_0x7017('0x55')]},'body':{'content':_0x4e98d4[_0x7017('0x1c')],'to':[_0x4e98d4[_0x7017('0x26')]],'from':_0x2cffa0[_0x7017('0x26')],'binary':![],'clientMessageId':_0x7017('0x63'),'charset':'UTF-8'},'json':!![]};rp(_0x3b6dd7)[_0x7017('0x17')](function(_0x27edc4){if(!_0x27edc4[_0x7017('0x30')]){var _0x10dd08={'messageId':_0x27edc4[_0x7017('0x42')][0x0][_0x7017('0x64')]};if(!_0x2cffa0[_0x7017('0x2d')]){_0x10dd08[_0x7017('0x2e')]=!![];}return _0x41eebc['update'](_0x10dd08);}else{return logger[_0x7017('0x30')](_0x7017('0x1f'),_0x7017('0x20'),_0x7017('0x65'),util[_0x7017('0x21')](_0x27edc4[_0x7017('0x30')],{'showHidden':![],'depth':null}));}})[_0x7017('0x14')](function(_0x28b197){return logger[_0x7017('0x30')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x7017('0x65'),util['inspect'](_0x28b197,{'showHidden':![],'depth':null}));});}else{logger[_0x7017('0x30')](_0x7017('0x1f'),'afterCreate',_0x7017('0x65'),_0x7017('0x62'));}break;}}})[_0x7017('0x66')](function(){_0x356686();});}else{_0x356686();}}},'charset':_0x7017('0x67'),'collate':_0x7017('0x68')});};