d7946ca573c5eff7e2fed91b159e44583f19b4b6
[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 _0x577d=['apiMessageId','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','Bearer\x20','application/json','code','message','refid','status','Token\x20not\x20received','finally','utf8mb4','utf8mb4_unicode_ci','../../config/logger','moment','bluebird','request-promise','rimraf','../../config/environment','define','sms_messages','messageId','body','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId','SmsInteraction','findOne','SmsInteractionId','update','createdAt','catch','SmsAccount','find','SmsAccountId','then','type','twilio','accountSid','authToken','create','phone','remote','/api/sms/messages/','token','sid','error','SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','skebby','https://api.skebby.it/API/v1.0/REST/','username','password','smsMethod','sender','login?username=','&password=','split','user_key','internal_order_id','deliveryReport','Missing\x20parameters:\x20username,\x20password','connectel','senderString','POST','https://smsapi.connectel.se/api/send/','requestid','read','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','format','%s:%s','https://rest.clicksend.com/v3/sms/send','Basic\x20%s','base64','http_code','data','queued_count','head','messages','clickSend','plivo','authId','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','/status?token=','IBSSO\x20','Missing\x20parameters:\x20base_url','crypto','apiKey','text','timestamp','keys','length','createHash','md5','digest','hex','signature=','GET','/external/get/send.php?','id_sms','csc','Missing\x20parameters:\x20apiKey','clickatell','https://platform.clickatell.com/messages','UTF-8'];(function(_0x3ffd68,_0x86625b){var _0x629e97=function(_0x160a1b){while(--_0x160a1b){_0x3ffd68['push'](_0x3ffd68['shift']());}};_0x629e97(++_0x86625b);}(_0x577d,0x84));var _0xd577=function(_0xbb5fd8,_0x4346e2){_0xbb5fd8=_0xbb5fd8-0x0;var _0x5edab2=_0x577d[_0xbb5fd8];return _0x5edab2;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xd577('0x0'))('api');var moment=require(_0xd577('0x1'));var BPromise=require(_0xd577('0x2'));var rp=require(_0xd577('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0xd577('0x4'));var config=require(_0xd577('0x5'));var attributes=require('./smsMessage.attributes');module['exports']=function(_0x362b1c,_0x3fbeea){return _0x362b1c[_0xd577('0x6')]('SmsMessage',attributes,{'tableName':_0xd577('0x7'),'paranoid':![],'indexes':[{'name':_0xd577('0x8'),'fields':[_0xd577('0x8')]},{'name':'fti_sms_messages','fields':[_0xd577('0x9')],'type':_0xd577('0xa')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x2cd1e5,_0x3c78e4,_0x4ed8b8){var _0xdca4b9=_0x362b1c[_0xd577('0xb')];var _0x14fb94=_0x2cd1e5[_0xd577('0xc')]({'plain':!![]});if(_0x14fb94[_0xd577('0xd')][_0xd577('0xe')]()==='in'||_0x14fb94[_0xd577('0xd')]['toLowerCase']()===_0xd577('0xf')&&!_0x14fb94[_0xd577('0x10')]&&!_[_0xd577('0x11')](_0x14fb94[_0xd577('0x12')])){_0xdca4b9[_0xd577('0x13')][_0xd577('0x14')]({'where':{'id':_0x14fb94[_0xd577('0x15')]}})['then'](function(_0x106c26){if(_0x106c26){_0x106c26[_0xd577('0x16')]({'lastMsgAt':_0x14fb94[_0xd577('0x17')],'lastMsgDirection':_0x14fb94['direction'][_0xd577('0xe')]()});}})[_0xd577('0x18')](function(_0x173767){console['error'](_0x173767);});}if(_0x14fb94[_0xd577('0xd')]===_0xd577('0xf')&&!_0x14fb94[_0xd577('0x10')]){var _0x4fe6a7;_0xdca4b9[_0xd577('0x19')][_0xd577('0x1a')]({'where':{'id':_0x14fb94[_0xd577('0x1b')]},'raw':!![]})[_0xd577('0x1c')](function(_0x1ff4e2){_0x4fe6a7=_0x1ff4e2;if(_0x4fe6a7&&_0x4fe6a7[_0xd577('0x1d')]){switch(_0x4fe6a7[_0xd577('0x1d')]){case'twilio':var _0x4ca79e=require(_0xd577('0x1e'));if(_0x4fe6a7[_0xd577('0x1f')]&&_0x4fe6a7[_0xd577('0x20')]&&_0x4fe6a7['phone']){var _0x57174c=new _0x4ca79e(_0x4fe6a7[_0xd577('0x1f')],_0x4fe6a7[_0xd577('0x20')]);_0x57174c['messages'][_0xd577('0x21')]({'body':_0x14fb94[_0xd577('0x9')],'to':_0x14fb94[_0xd577('0x22')],'from':_0x4fe6a7[_0xd577('0x22')],'statusCallback':_0x4fe6a7[_0xd577('0x23')]+_0xd577('0x24')+_0x14fb94['id']+'/status?token='+_0x4fe6a7[_0xd577('0x25')]})['then'](function(_0x11d7c8){if(_0x11d7c8[_0xd577('0x26')]){return _0x2cd1e5[_0xd577('0x16')]({'messageId':_0x11d7c8[_0xd577('0x26')]});}})[_0xd577('0x18')](function(_0x3c4fe4){logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),_0xd577('0x1e'),util[_0xd577('0x2a')](_0x3c4fe4,{'showHidden':![],'depth':null}));});}else{logger[_0xd577('0x27')](_0xd577('0x28'),'afterCreate','twilio','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0xd577('0x2b'):var _0x4a92c3=_0xd577('0x2c');if(_0x4fe6a7[_0xd577('0x2d')]&&_0x4fe6a7[_0xd577('0x2e')]){var _0x1d6a3d={'recipient':[_0x14fb94[_0xd577('0x22')]],'message':_0x14fb94['body'],'message_type':_0x4fe6a7[_0xd577('0x2f')]};if(_0x4fe6a7[_0xd577('0x2f')]&&_0x4fe6a7[_0xd577('0x2f')]!=='SI'){_0x1d6a3d[_0xd577('0x30')]=_0x4fe6a7[_0xd577('0x22')];}var _0xca0c90={'url':_0x4a92c3+_0xd577('0x31')+_0x4fe6a7[_0xd577('0x2d')]+_0xd577('0x32')+_0x4fe6a7['password'],'method':'GET'};rp(_0xca0c90)[_0xd577('0x1c')](function(_0x33e3b8){var _0x4b8cdd=_0x33e3b8[_0xd577('0x33')](';');var _0x2dbe3f={'user_key':_0x4b8cdd[0x0],'session_key':_0x4b8cdd[0x1]};_0xca0c90={'url':_0x4a92c3+'sms','method':'POST','headers':{'user_key':_0x2dbe3f[_0xd577('0x34')],'Session_key':_0x2dbe3f['session_key']},'json':!![],'body':_0x1d6a3d};return rp(_0xca0c90);})[_0xd577('0x1c')](function(_0x39cb0f){if(_0x39cb0f['total_sent']>=0x1){var _0x4b0a84={'messageId':_0x39cb0f[_0xd577('0x35')]};if(_0x4fe6a7['smsMethod']!=='GP'||!_0x4fe6a7[_0xd577('0x36')]){_0x4b0a84['read']=!![];}return _0x2cd1e5[_0xd577('0x16')](_0x4b0a84);}else{return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xd577('0x29'),_0xd577('0x2b'),util[_0xd577('0x2a')](_0x39cb0f,{'showHidden':![],'depth':null}));}})['catch'](function(_0x138b2e){return logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),_0xd577('0x2b'),util[_0xd577('0x2a')](_0x138b2e,{'showHidden':![],'depth':null}));});}else{logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),_0xd577('0x2b'),_0xd577('0x37'));}break;case _0xd577('0x38'):if(_0x4fe6a7[_0xd577('0x20')]){var _0x257ddb={'recipient':_0x14fb94[_0xd577('0x22')],'message':_0x14fb94[_0xd577('0x9')],'sender':_0x4fe6a7[_0xd577('0x39')]||_0x4fe6a7[_0xd577('0x22')],'authorization':_0x4fe6a7[_0xd577('0x20')]};var _0x3c78e4={'method':_0xd577('0x3a'),'uri':_0xd577('0x3b'),'body':_0x257ddb,'json':!![]};rp(_0x3c78e4)[_0xd577('0x1c')](function(_0xc24533){var _0x2fd4c2={'messageId':_0xc24533[_0xd577('0x3c')]};if(!_0x4fe6a7[_0xd577('0x36')]){_0x2fd4c2[_0xd577('0x3d')]=!![];}return _0x2cd1e5[_0xd577('0x16')](_0x2fd4c2);})[_0xd577('0x18')](function(_0x34c511){logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),_0xd577('0x38'),util[_0xd577('0x2a')](_0x34c511,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0xd577('0x29'),_0xd577('0x38'),_0xd577('0x3e'));}break;case _0xd577('0x3f'):if(_0x4fe6a7[_0xd577('0x2d')]&&_0x4fe6a7['password']){var _0x257ddb={'messages':[{'source':_0xd577('0x40'),'to':_0x14fb94[_0xd577('0x22')],'body':_0x14fb94[_0xd577('0x9')],'from':_0x4fe6a7[_0xd577('0x39')]||_0x4fe6a7[_0xd577('0x22')]}]};var _0x559d5f=util[_0xd577('0x41')](_0xd577('0x42'),_0x4fe6a7[_0xd577('0x2d')],_0x4fe6a7[_0xd577('0x2e')]);var _0x3c78e4={'method':_0xd577('0x3a'),'uri':_0xd577('0x43'),'body':_0x257ddb,'headers':{'Authorization':util[_0xd577('0x41')](_0xd577('0x44'),new Buffer(_0x559d5f)['toString'](_0xd577('0x45')))},'json':!![]};rp(_0x3c78e4)[_0xd577('0x1c')](function(_0x2772c9){if(_0x2772c9['http_code']>=0xc8&&_0x2772c9[_0xd577('0x46')]<=0xce){if(_0x2772c9[_0xd577('0x47')]&&_0x2772c9[_0xd577('0x47')][_0xd577('0x48')]>0x0){var _0x53b9b6=_[_0xd577('0x49')](_0x2772c9[_0xd577('0x47')][_0xd577('0x4a')]);var _0x1d6c57={'messageId':_0x53b9b6['message_id']};if(!_0x4fe6a7[_0xd577('0x36')]){_0x1d6c57[_0xd577('0x3d')]=!![];}return _0x2cd1e5[_0xd577('0x16')](_0x1d6c57);}else{logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),_0xd577('0x4b'),util['inspect'](_0x2772c9,{'showHidden':![],'depth':null}));}}else{logger[_0xd577('0x27')](_0xd577('0x28'),'afterCreate','clickSend',util[_0xd577('0x2a')](_0x2772c9,{'showHidden':![],'depth':null}));}})[_0xd577('0x18')](function(_0x444224){logger[_0xd577('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xd577('0x29'),'clickSend',util['inspect'](_0x444224,{'showHidden':![],'depth':null}));});}else{logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),'clickSend',_0xd577('0x37'));}break;case _0xd577('0x4c'):if(_0x4fe6a7[_0xd577('0x4d')]&&_0x4fe6a7[_0xd577('0x20')]){var _0x257ddb={'dst':_0x14fb94['phone'],'text':_0x14fb94[_0xd577('0x9')],'src':_0x4fe6a7[_0xd577('0x39')]||_0x4fe6a7[_0xd577('0x22')],'url':_0x4fe6a7[_0xd577('0x23')]+'/api/sms/messages/'+_0x14fb94['id']+'/status?token='+_0x4fe6a7[_0xd577('0x25')]};var _0x559d5f=util[_0xd577('0x41')]('%s:%s',_0x4fe6a7[_0xd577('0x4d')],_0x4fe6a7[_0xd577('0x20')]);var _0x3c78e4={'method':_0xd577('0x3a'),'uri':util[_0xd577('0x41')]('https://api.plivo.com/v1/Account/%s/Message/',_0x4fe6a7[_0xd577('0x4d')]),'body':_0x257ddb,'headers':{'Authorization':util[_0xd577('0x41')](_0xd577('0x44'),new Buffer(_0x559d5f)['toString']('base64'))},'json':!![]};rp(_0x3c78e4)[_0xd577('0x1c')](function(_0x426f15){var _0x4ac132={'messageId':_0x426f15[_0xd577('0x4e')][0x0]};return _0x2cd1e5[_0xd577('0x16')](_0x4ac132);})[_0xd577('0x18')](function(_0x4ee00f){logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),'plivo',util[_0xd577('0x2a')](_0x4ee00f,{'showHidden':![],'depth':null}));});}else{logger[_0xd577('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xd577('0x29'),_0xd577('0x4c'),_0xd577('0x4f'));}break;case _0xd577('0x50'):if(_0x4fe6a7[_0xd577('0x2d')]&&_0x4fe6a7[_0xd577('0x2e')]){if(_0x4fe6a7['baseUrl']){var _0x339213={'method':_0xd577('0x3a'),'uri':_0x4fe6a7[_0xd577('0x51')]+_0xd577('0x52'),'body':{'username':_0x4fe6a7['username'],'password':_0x4fe6a7[_0xd577('0x2e')]},'json':!![]};return rp(_0x339213)[_0xd577('0x1c')](function(_0x153c41){var _0x163887={'method':_0xd577('0x3a'),'uri':_0x4fe6a7[_0xd577('0x51')]+_0xd577('0x53'),'body':{'messages':[{'from':_0x4fe6a7[_0xd577('0x22')],'destinations':[{'to':_0x14fb94[_0xd577('0x22')]}],'text':_0x14fb94[_0xd577('0x9')],'notifyUrl':_0x4fe6a7['remote']+_0xd577('0x24')+_0x14fb94['id']+_0xd577('0x54')+_0x4fe6a7[_0xd577('0x25')],'notifyContentType':'application/json','callbackData':_0x4fe6a7[_0xd577('0x22')]+';'+_0x14fb94[_0xd577('0x9')]}]},'headers':{'Authorization':_0xd577('0x55')+_0x153c41['token']},'json':!![]};return rp(_0x163887)['then'](function(_0x1a0de9){if(_0x1a0de9[_0xd577('0x4a')]){var _0x4cf54b={'messageId':_0x1a0de9[_0xd577('0x4a')][0x0][_0xd577('0x8')]};if(!_0x4fe6a7[_0xd577('0x36')]){_0x4cf54b[_0xd577('0x3d')]=!![];}return _0x2cd1e5[_0xd577('0x16')](_0x4cf54b);}else{return logger[_0xd577('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xd577('0x29'),_0xd577('0x50'),util[_0xd577('0x2a')](_0x1a0de9,{'showHidden':![],'depth':null}));}});})[_0xd577('0x18')](function(_0x2009b2){return logger[_0xd577('0x27')](_0xd577('0x28'),'afterCreate',_0xd577('0x50'),util[_0xd577('0x2a')](_0x2009b2,{'showHidden':![],'depth':null}));});}else{logger[_0xd577('0x27')](_0xd577('0x28'),'afterCreate',_0xd577('0x50'),_0xd577('0x56'));}}else{logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),'infobip',_0xd577('0x37'));}break;case'csc':var _0x57d86f=require(_0xd577('0x57'));if(_0x4fe6a7[_0xd577('0x58')]){var _0x418c19={};_0x418c19['login']=_0x4fe6a7[_0xd577('0x2d')];_0x418c19['phone']=_0x14fb94[_0xd577('0x22')];_0x418c19[_0xd577('0x30')]=_0x4fe6a7[_0xd577('0x22')];_0x418c19[_0xd577('0x59')]=_0x14fb94[_0xd577('0x9')];_0x418c19[_0xd577('0x5a')]=+new Date();var _0x1da116='';var _0x3ff26b='';var _0x52ced9=Object[_0xd577('0x5b')](_0x418c19);_0x52ced9['sort']();for(var _0xf6a43e=0x0;_0xf6a43e<_0x52ced9[_0xd577('0x5c')];_0xf6a43e++){if(_0x1da116!=''){_0x1da116+='&';}_0x1da116+=_0x52ced9[_0xf6a43e]+'='+encodeURIComponent(_0x418c19[_0x52ced9[_0xf6a43e]]);_0x3ff26b+=_0x418c19[_0x52ced9[_0xf6a43e]];}_0x3ff26b+=_0x4fe6a7[_0xd577('0x58')];_0x3ff26b=_0x57d86f[_0xd577('0x5d')](_0xd577('0x5e'))['update'](_0x3ff26b)[_0xd577('0x5f')](_0xd577('0x60'));if(_0x1da116!==''){_0x1da116+='&';}_0x1da116+=_0xd577('0x61')+_0x3ff26b;var _0xca0c90={'method':_0xd577('0x62'),'uri':_0x4fe6a7[_0xd577('0x51')]+_0xd577('0x63')+_0x1da116,'json':!![]};return rp(_0xca0c90)['then'](function(_0x586c65){var _0x259c48=Object[_0xd577('0x5b')](_0x586c65);if(_0x586c65[_0x259c48[0x0]][_0xd577('0x27')]&&parseInt(_0x586c65[_0x259c48[0x0]][_0xd577('0x27')])===0x0){var _0x5dd0d5={'messageId':_0x586c65[_0x259c48[0x0]][_0xd577('0x64')]};if(!_0x4fe6a7[_0xd577('0x36')]){_0x5dd0d5['read']=!![];}return _0x2cd1e5[_0xd577('0x16')](_0x5dd0d5);}else{return logger['error'](_0xd577('0x28'),_0xd577('0x29'),_0xd577('0x65'),util['inspect'](_0x586c65[_0xd577('0x27')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x125e23){return logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),'csc',util[_0xd577('0x2a')](_0x125e23,{'showHidden':![],'depth':null}));});}else{logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),_0xd577('0x65'),_0xd577('0x66'));}break;case _0xd577('0x67'):if(_0x4fe6a7[_0xd577('0x58')]){var _0x32fd0a={'method':_0xd577('0x3a'),'uri':_0xd577('0x68'),'headers':{'Authorization':_0x4fe6a7[_0xd577('0x58')]},'body':{'content':_0x14fb94['body'],'to':[_0x14fb94[_0xd577('0x22')]],'from':_0x4fe6a7['phone'],'binary':![],'clientMessageId':'uuid','charset':_0xd577('0x69')},'json':!![]};rp(_0x32fd0a)['then'](function(_0x4a1278){if(!_0x4a1278[_0xd577('0x27')]){var _0x2cbd94={'messageId':_0x4a1278[_0xd577('0x4a')][0x0][_0xd577('0x6a')]};if(!_0x4fe6a7[_0xd577('0x36')]){_0x2cbd94['read']=!![];}return _0x2cd1e5[_0xd577('0x16')](_0x2cbd94);}else{return logger['error'](_0xd577('0x28'),'afterCreate','clickatell',util['inspect'](_0x4a1278['error'],{'showHidden':![],'depth':null}));}})[_0xd577('0x18')](function(_0x5378b0){return logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),_0xd577('0x67'),util[_0xd577('0x2a')](_0x5378b0,{'showHidden':![],'depth':null}));});}else{logger[_0xd577('0x27')](_0xd577('0x28'),'afterCreate','clickatell',_0xd577('0x66'));}break;case _0xd577('0x6b'):if(_0x4fe6a7[_0xd577('0x58')]){var _0xd955d={};var _0xca0c90={'method':_0xd577('0x3a'),'uri':_0xd577('0x6c'),'headers':{'Authorization':_0xd577('0x6d')+_0x4fe6a7[_0xd577('0x58')],'Content-Type':_0xd577('0x6e')},'body':{'from':_0x4fe6a7[_0xd577('0x22')],'to':_0x14fb94[_0xd577('0x22')],'text':_0x14fb94['body']},'json':!![]};return rp(_0xca0c90)[_0xd577('0x1c')](function(_0x613a53){if(_0x613a53[_0xd577('0x6f')]==0xca){_0xd955d[_0xd577('0x70')]=_0x613a53;var _0x4fc3d6={'method':_0xd577('0x3a'),'uri':'https://api.intelepeer.com/_rest/v4/app/sms/mdr','headers':{'Authorization':_0xd577('0x6d')+_0x4fe6a7[_0xd577('0x58')],'Content-Type':_0xd577('0x6e')},'body':{'refid':_0xd955d['message'][_0xd577('0x71')]},'json':!![]};return rp(_0x4fc3d6)[_0xd577('0x1c')](function(_0x59d52c){_0xd955d[_0xd577('0x72')]=_0x59d52c;var _0x5b35de={'messageId':_0xd955d[_0xd577('0x70')][_0xd577('0x71')],'read':!![]};return _0x2cd1e5[_0xd577('0x16')](_0x5b35de);});}else{return logger[_0xd577('0x27')](_0xd577('0x28'),'afterCreate',_0xd577('0x6b'),util[_0xd577('0x2a')](_0x613a53,{'showHidden':![],'depth':null}));}})['catch'](function(_0x395557){return logger[_0xd577('0x27')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0xd577('0x29'),_0xd577('0x6b'),util['inspect'](_0x395557,{'showHidden':![],'depth':null}));});}else{return logger[_0xd577('0x27')](_0xd577('0x28'),_0xd577('0x29'),_0xd577('0x6b'),_0xd577('0x73'));}break;}}})[_0xd577('0x74')](function(){_0x4ed8b8();});}else{_0x4ed8b8();}}},'charset':_0xd577('0x75'),'collate':_0xd577('0x76')});};