0f2023b12e189a33d3a93c18a65ce645f190b11d
[motion2.git] / server / api / smsMessage / smsMessage.controller.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 _0x0502=['sms','acceptMessage','reject','UserId','agent','get','SmsInteractionId','interaction','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','rejectMessage','ContactId','Sequelize','QueryTypes','SELECT','contact','User','email','internal','interface','SIP/%s','channel','motionChannel','event','EventManager','rejectmessage','SmsAccount','SmsAccountId','debug','inspect','twilio','MessageSid','messageId','SmsAccount,\x20%s,\x20%s,\x20%s','MessageUUID','sent','delivered','Status','plivio','infobip','results','groupName','DELIVERED','util','lodash','ioredis','../../components/interaction/service','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./smsMessage.socket','register','jayson/promise','client','http','request','info','SmsMessage,\x20%s,\x20%s','request\x20sent','SmsMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','json','offset','undefined','limit','count','set','Content-Range','update','destroy','then','end','sendStatus','stack','name','send','index','rawAttributes','fieldName','type','model','map','query','filters','intersection','fields','attributes','length','nolimit','order','sort','where','filter','merge','VIRTUAL','includeAll','include','SmsMessage','findAll','rows','show','params','keys','find','create','body','describe'];(function(_0x4deff,_0x42c328){var _0x440123=function(_0x2d7dde){while(--_0x2d7dde){_0x4deff['push'](_0x4deff['shift']());}};_0x440123(++_0x42c328);}(_0x0502,0xa5));var _0x2050=function(_0x2531d6,_0x750539){_0x2531d6=_0x2531d6-0x0;var _0x5a1bfe=_0x0502[_0x2531d6];return _0x5a1bfe;};'use strict';var util=require(_0x2050('0x0'));var _=require(_0x2050('0x1'));var Redis=require(_0x2050('0x2'));var interactionService=require(_0x2050('0x3'));var qs=require('../../components/parsers/qs');var logger=require(_0x2050('0x4'))(_0x2050('0x5'));var config=require(_0x2050('0x6'));var db=require(_0x2050('0x7'))['db'];config['redis']=_[_0x2050('0x8')](config[_0x2050('0x9')],{'host':_0x2050('0xa'),'port':0x18eb});var socket=require(_0x2050('0xb'))(new Redis(config[_0x2050('0x9')]));require(_0x2050('0xc'))[_0x2050('0xd')](socket);var jayson=require(_0x2050('0xe'));var client=jayson[_0x2050('0xf')][_0x2050('0x10')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});var interaction_log=require(_0x2050('0x4'))('sms-interactions');function respondWithRpcPromise(_0x97c28c,_0x44b849,_0x5e28a0,_0xc56952){return new Promise(function(_0x5899ab,_0x33d265){var _0x15f083=_0xc56952||client;return _0x15f083[_0x2050('0x11')](_0x97c28c,_0x5e28a0)['then'](function(_0x28d961){logger[_0x2050('0x12')](_0x2050('0x13'),_0x44b849,_0x2050('0x14'));logger['debug'](_0x2050('0x15'),_0x44b849,_0x2050('0x14'),JSON[_0x2050('0x16')](_0x28d961));if(_0x28d961[_0x2050('0x17')]){if(_0x28d961[_0x2050('0x17')][_0x2050('0x18')]===0x1f4){logger[_0x2050('0x17')]('SmsMessage,\x20%s,\x20%s',_0x44b849,_0x28d961[_0x2050('0x17')][_0x2050('0x19')]);return _0x33d265(_0x28d961[_0x2050('0x17')][_0x2050('0x19')]);}logger['error'](_0x2050('0x13'),_0x44b849,_0x28d961[_0x2050('0x17')][_0x2050('0x19')]);return _0x5899ab(_0x28d961[_0x2050('0x17')][_0x2050('0x19')]);}else{logger[_0x2050('0x12')](_0x2050('0x13'),_0x44b849,'request\x20sent');_0x5899ab(_0x28d961[_0x2050('0x1a')][_0x2050('0x19')]);}})[_0x2050('0x1b')](function(_0x438ae9){logger['error'](_0x2050('0x13'),_0x44b849,_0x438ae9);_0x33d265(_0x438ae9);});});}function respondWithResult(_0x127bb0,_0xf76f15){_0xf76f15=_0xf76f15||0xc8;return function(_0x5810ff){if(_0x5810ff){return _0x127bb0[_0x2050('0x1c')](_0xf76f15)[_0x2050('0x1d')](_0x5810ff);}};}function respondWithFilteredResult(_0x4d8349,_0x13b274){return function(_0x5abdde){if(_0x5abdde){var _0x2add5b=typeof _0x13b274[_0x2050('0x1e')]===_0x2050('0x1f')&&typeof _0x13b274[_0x2050('0x20')]===_0x2050('0x1f');var _0x5a9211=_0x5abdde[_0x2050('0x21')];var _0x4c8821=_0x2add5b?0x0:_0x13b274[_0x2050('0x1e')];var _0x45a4f4=_0x2add5b?_0x5abdde['count']:_0x13b274['offset']+_0x13b274[_0x2050('0x20')];var _0x2cafc7;if(_0x45a4f4>=_0x5a9211){_0x45a4f4=_0x5a9211;_0x2cafc7=0xc8;}else{_0x2cafc7=0xce;}_0x4d8349[_0x2050('0x1c')](_0x2cafc7);return _0x4d8349[_0x2050('0x22')](_0x2050('0x23'),_0x4c8821+'-'+_0x45a4f4+'/'+_0x5a9211)[_0x2050('0x1d')](_0x5abdde);}return null;};}function saveUpdates(_0x96b512){return function(_0x14ae39){if(_0x14ae39){return _0x14ae39[_0x2050('0x24')](_0x96b512)['then'](function(_0x3e0ec9){return _0x3e0ec9;});}return null;};}function removeEntity(_0x29f1f4){return function(_0x4aaa91){if(_0x4aaa91){return _0x4aaa91[_0x2050('0x25')]()[_0x2050('0x26')](function(){_0x29f1f4[_0x2050('0x1c')](0xcc)[_0x2050('0x27')]();});}};}function handleEntityNotFound(_0x55cda2){return function(_0x32504d){if(!_0x32504d){_0x55cda2[_0x2050('0x28')](0x194);}return _0x32504d;};}function handleError(_0x4157a5,_0x58b57f){_0x58b57f=_0x58b57f||0x1f4;return function(_0x2e12b7){logger[_0x2050('0x17')](_0x2e12b7[_0x2050('0x29')]);if(_0x2e12b7[_0x2050('0x2a')]){delete _0x2e12b7[_0x2050('0x2a')];}_0x4157a5['status'](_0x58b57f)[_0x2050('0x2b')](_0x2e12b7);};}exports[_0x2050('0x2c')]=function(_0x184ae9,_0x2e1b9b){var _0x20c783={},_0x2c2c69={},_0x3fde67={'count':0x0,'rows':[]};var _0x13db06=_['map'](db['SmsMessage'][_0x2050('0x2d')],function(_0x4f15de){return{'name':_0x4f15de[_0x2050('0x2e')],'type':_0x4f15de[_0x2050('0x2f')]['key']};});_0x2c2c69[_0x2050('0x30')]=_[_0x2050('0x31')](_0x13db06,'name');_0x2c2c69[_0x2050('0x32')]=_['keys'](_0x184ae9[_0x2050('0x32')]);_0x2c2c69[_0x2050('0x33')]=_[_0x2050('0x34')](_0x2c2c69[_0x2050('0x30')],_0x2c2c69['query']);_0x20c783['attributes']=_[_0x2050('0x34')](_0x2c2c69['model'],qs[_0x2050('0x35')](_0x184ae9[_0x2050('0x32')][_0x2050('0x35')]));_0x20c783[_0x2050('0x36')]=_0x20c783[_0x2050('0x36')][_0x2050('0x37')]?_0x20c783[_0x2050('0x36')]:_0x2c2c69[_0x2050('0x30')];if(!_0x184ae9[_0x2050('0x32')]['hasOwnProperty'](_0x2050('0x38'))){_0x20c783[_0x2050('0x20')]=qs[_0x2050('0x20')](_0x184ae9['query']['limit']);_0x20c783['offset']=qs[_0x2050('0x1e')](_0x184ae9[_0x2050('0x32')]['offset']);}_0x20c783[_0x2050('0x39')]=qs[_0x2050('0x3a')](_0x184ae9[_0x2050('0x32')][_0x2050('0x3a')]);_0x20c783[_0x2050('0x3b')]=qs[_0x2050('0x33')](_['pick'](_0x184ae9[_0x2050('0x32')],_0x2c2c69[_0x2050('0x33')]),_0x13db06);if(_0x184ae9['query'][_0x2050('0x3c')]){_0x20c783['where']=_[_0x2050('0x3d')](_0x20c783[_0x2050('0x3b')],{'$or':_[_0x2050('0x31')](_0x13db06,function(_0x2cec33){if(_0x2cec33[_0x2050('0x2f')]!==_0x2050('0x3e')){var _0x1d837c={};_0x1d837c[_0x2cec33['name']]={'$like':'%'+_0x184ae9[_0x2050('0x32')][_0x2050('0x3c')]+'%'};return _0x1d837c;}})});}_0x20c783=_[_0x2050('0x3d')]({},_0x20c783,_0x184ae9['options']);var _0x2545da={'where':_0x20c783['where']};return db['SmsMessage'][_0x2050('0x21')](_0x2545da)[_0x2050('0x26')](function(_0x21729d){_0x3fde67[_0x2050('0x21')]=_0x21729d;if(_0x184ae9[_0x2050('0x32')][_0x2050('0x3f')]){_0x20c783[_0x2050('0x40')]=[{'all':!![]}];}return db[_0x2050('0x41')][_0x2050('0x42')](_0x20c783);})[_0x2050('0x26')](function(_0x21b7fd){_0x3fde67[_0x2050('0x43')]=_0x21b7fd;return _0x3fde67;})['then'](respondWithFilteredResult(_0x2e1b9b,_0x20c783))[_0x2050('0x1b')](handleError(_0x2e1b9b,null));};exports[_0x2050('0x44')]=function(_0x10563d,_0x3f0e78){var _0xd9ac4={'raw':!![],'where':{'id':_0x10563d[_0x2050('0x45')]['id']}},_0x468a5c={};_0x468a5c['model']=_[_0x2050('0x46')](db['SmsMessage'][_0x2050('0x2d')]);_0x468a5c[_0x2050('0x32')]=_[_0x2050('0x46')](_0x10563d[_0x2050('0x32')]);_0x468a5c[_0x2050('0x33')]=_[_0x2050('0x34')](_0x468a5c['model'],_0x468a5c[_0x2050('0x32')]);_0xd9ac4[_0x2050('0x36')]=_[_0x2050('0x34')](_0x468a5c[_0x2050('0x30')],qs['fields'](_0x10563d[_0x2050('0x32')][_0x2050('0x35')]));_0xd9ac4[_0x2050('0x36')]=_0xd9ac4[_0x2050('0x36')][_0x2050('0x37')]?_0xd9ac4[_0x2050('0x36')]:_0x468a5c['model'];if(_0x10563d['query']['includeAll']){_0xd9ac4[_0x2050('0x40')]=[{'all':!![]}];}_0xd9ac4=_[_0x2050('0x3d')]({},_0xd9ac4,_0x10563d['options']);return db['SmsMessage'][_0x2050('0x47')](_0xd9ac4)['then'](handleEntityNotFound(_0x3f0e78,null))['then'](respondWithResult(_0x3f0e78,null))[_0x2050('0x1b')](handleError(_0x3f0e78,null));};exports['create']=function(_0x3d49cf,_0x15413e){return db[_0x2050('0x41')][_0x2050('0x48')](_0x3d49cf[_0x2050('0x49')],{})[_0x2050('0x26')](respondWithResult(_0x15413e,0xc9))[_0x2050('0x1b')](handleError(_0x15413e,null));};exports[_0x2050('0x24')]=function(_0x20d0a2,_0x116cf8){if(_0x20d0a2[_0x2050('0x49')]['id']){delete _0x20d0a2[_0x2050('0x49')]['id'];}return db[_0x2050('0x41')][_0x2050('0x47')]({'where':{'id':_0x20d0a2[_0x2050('0x45')]['id']}})['then'](handleEntityNotFound(_0x116cf8,null))['then'](saveUpdates(_0x20d0a2[_0x2050('0x49')],null))[_0x2050('0x26')](respondWithResult(_0x116cf8,null))[_0x2050('0x1b')](handleError(_0x116cf8,null));};exports[_0x2050('0x25')]=function(_0x685a95,_0x2b1df3){return db[_0x2050('0x41')]['find']({'where':{'id':_0x685a95[_0x2050('0x45')]['id']}})[_0x2050('0x26')](handleEntityNotFound(_0x2b1df3,null))[_0x2050('0x26')](removeEntity(_0x2b1df3,null))[_0x2050('0x1b')](handleError(_0x2b1df3,null));};exports[_0x2050('0x4a')]=function(_0x3e7609,_0x55f783){return db[_0x2050('0x41')]['describe']()[_0x2050('0x26')](respondWithResult(_0x55f783,null))[_0x2050('0x1b')](handleError(_0x55f783,null));};exports['accept']=function(_0x4a39f5,_0x5077d9){var _0x2d7532=_0x2050('0x4b');return interactionService[_0x2050('0x4c')](_0x4a39f5,_0x2d7532)['then'](respondWithResult(_0x5077d9,null))['catch'](handleError(_0x5077d9,null));};exports[_0x2050('0x4d')]=function(_0x4115d2,_0x3a49e0){var _0x4e9e45={'agent':{},'channel':_0x2050('0x4b')};if(_0x4115d2[_0x2050('0x49')]['id']){delete _0x4115d2[_0x2050('0x49')]['id'];}_0x4115d2['body'][_0x2050('0x4e')]=_0x4115d2[_0x2050('0x49')]['UserId']||_0x4115d2['user']['id'];_0x4e9e45[_0x2050('0x4f')]['id']=_0x4115d2['body']['UserId'];return db[_0x2050('0x41')][_0x2050('0x47')]({'where':{'id':_0x4115d2[_0x2050('0x45')]['id'],'UserId':null}})[_0x2050('0x26')](handleEntityNotFound(_0x3a49e0,null))['then'](function(_0x1b8699){if(_0x1b8699){_0x4e9e45['message']=_0x1b8699[_0x2050('0x50')]({'plain':!![]});return db['SmsInteraction']['find']({'where':{'id':_0x1b8699[_0x2050('0x51')]}});}return null;})[_0x2050('0x26')](handleEntityNotFound(_0x3a49e0,null))[_0x2050('0x26')](function(_0x5a2a09){if(_0x5a2a09){_0x4e9e45[_0x2050('0x52')]=_0x5a2a09[_0x2050('0x50')]({'plain':!![]});interaction_log[_0x2050('0x12')](_0x2050('0x53'),_0x4115d2[_0x2050('0x54')]['id'],_0x4115d2[_0x2050('0x54')][_0x2050('0x2a')],_0x4115d2[_0x2050('0x54')][_0x2050('0x55')],_0x4e9e45[_0x2050('0x52')]['id'],_0x4115d2['body']?JSON['stringify'](_0x4115d2[_0x2050('0x49')]):_0x2050('0x56'));return respondWithRpcPromise('RejectMessage',_0x2050('0x57'),_0x4e9e45);}return null;})['then'](function(_0x159d24){var _0x7401ad='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x159d24[_0x2050('0x19')][_0x2050('0x58')];return db['sequelize']['query'](_0x7401ad,{'type':db[_0x2050('0x59')][_0x2050('0x5a')][_0x2050('0x5b')],'raw':!![]})['then'](function(_0x2d47aa){return _0x2d47aa;});})[_0x2050('0x26')](function(_0x23ae72){if(_0x23ae72){_0x4e9e45[_0x2050('0x19')][_0x2050('0x5c')]=_0x23ae72[0x0];if(!_0x4115d2[_0x2050('0x49')][_0x2050('0x4e')])return;return db[_0x2050('0x5d')][_0x2050('0x47')]({'where':{'id':_0x4115d2[_0x2050('0x49')][_0x2050('0x4e')],'role':_0x2050('0x4f')},'attributes':['id',_0x2050('0x2a'),'fullname',_0x2050('0x5e'),_0x2050('0x5f')],'raw':!![]});}return null;})[_0x2050('0x26')](function(_0x1db75c){if(!_0x1db75c)return null;_0x4e9e45[_0x2050('0x19')]['agent']=_0x1db75c;return _0x4e9e45;})[_0x2050('0x26')](function(_0x30e05d){if(_0x30e05d){_0x30e05d[_0x2050('0x19')][_0x2050('0x60')]=util['format'](_0x2050('0x61'),_0x4115d2[_0x2050('0x54')][_0x2050('0x2a')]);_0x30e05d['message']['channel']=_0x4e9e45[_0x2050('0x62')];_0x30e05d[_0x2050('0x19')][_0x2050('0x63')]=_0x4e9e45['channel'];_0x30e05d['message'][_0x2050('0x64')]=_0x2050('0x4d');respondWithRpcPromise(_0x2050('0x65'),_0x2050('0x65'),{'event':_0x2050('0x66'),'message':_0x30e05d[_0x2050('0x19')]},client9002);return _0x4e9e45;}return null;})['then'](respondWithResult(_0x3a49e0,null))[_0x2050('0x1b')](handleError(_0x3a49e0,null));};exports[_0x2050('0x1c')]=function(_0x539ee9,_0x5cdfe2){if(_0x539ee9[_0x2050('0x49')]['id']){delete _0x539ee9[_0x2050('0x49')]['id'];}var _0x20d437;return db[_0x2050('0x41')][_0x2050('0x47')]({'where':{'id':_0x539ee9[_0x2050('0x45')]['id']}})['then'](handleEntityNotFound(_0x5cdfe2,null))[_0x2050('0x26')](function(_0x9a579){if(_0x9a579){_0x20d437=_0x9a579;return db[_0x2050('0x67')][_0x2050('0x47')]({'where':{'id':_0x9a579[_0x2050('0x68')]}});}})[_0x2050('0x26')](handleEntityNotFound(_0x5cdfe2,null))[_0x2050('0x26')](function(_0x50a360){if(_0x50a360){logger[_0x2050('0x69')](_0x2050('0x15'),_0x2050('0x1c'),'received\x20delivery\x20report\x20from',_0x50a360[_0x2050('0x2f')],util[_0x2050('0x6a')](_0x539ee9[_0x2050('0x49')],{'showHidden':![],'depth':null}));switch(_0x50a360[_0x2050('0x2f')]){case _0x2050('0x6b'):if(_0x539ee9[_0x2050('0x49')][_0x2050('0x6c')]&&_0x539ee9[_0x2050('0x49')][_0x2050('0x6c')]===_0x20d437[_0x2050('0x6d')]){return _0x20d437[_0x2050('0x24')]({'read':!![]});}else{logger[_0x2050('0x17')](_0x2050('0x6e'),'status',_0x2050('0x6b'),util[_0x2050('0x6a')](_0x539ee9[_0x2050('0x49')],{'showHidden':![],'depth':null}));}break;case'plivo':if(_0x539ee9[_0x2050('0x49')][_0x2050('0x6f')]&&_0x539ee9[_0x2050('0x49')][_0x2050('0x6f')]===_0x20d437[_0x2050('0x6d')]&&_['indexOf']([_0x2050('0x70'),_0x2050('0x71')],_0x539ee9['body'][_0x2050('0x72')])>=0x0){return _0x20d437[_0x2050('0x24')]({'read':!![]});}else{logger[_0x2050('0x17')](_0x2050('0x6e'),_0x2050('0x1c'),_0x2050('0x73'),util[_0x2050('0x6a')](_0x539ee9['body'],{'showHidden':![],'depth':null}));}break;case _0x2050('0x74'):var _0x37a699=_0x539ee9[_0x2050('0x49')][_0x2050('0x75')][0x0];if(_0x37a699[_0x2050('0x1c')][_0x2050('0x76')]===_0x2050('0x77')){return _0x20d437[_0x2050('0x24')]({'read':!![]});}else{logger['error'](_0x2050('0x6e'),_0x2050('0x1c'),'infobip',util[_0x2050('0x6a')](_0x539ee9[_0x2050('0x49')],{'showHidden':![],'depth':null}));}break;}return _0x20d437;}})[_0x2050('0x26')](respondWithResult(_0x5cdfe2,null))[_0x2050('0x1b')](handleError(_0x5cdfe2,null));};