204a755b3e4503b57fdb01a4bf88c3c28fd44f3f
[motion2.git] / server / api / openchannelMessage / openchannelMessage.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 _0xd01d=['then','destroy','end','sendStatus','stack','name','send','index','map','OpenchannelMessage','rawAttributes','fieldName','type','model','query','intersection','attributes','fields','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','keys','length','include','find','create','body','params','describe','openchannel','UserId','user','agent','get','OpenchannelInteraction','OpenchannelInteractionId','interaction','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','email','interface','channel','motionChannel','event','reject','EventManager','rejectmessage','util','lodash','ioredis','../../components/interaction/service','../../config/logger','api','../../mysqldb','redis','defaults','localhost','./openchannelMessage.socket','register','jayson/promise','http','client','request','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','json','offset','undefined','limit','count','set','update'];(function(_0x86f1ff,_0x377276){var _0x3765b9=function(_0x493ba8){while(--_0x493ba8){_0x86f1ff['push'](_0x86f1ff['shift']());}};_0x3765b9(++_0x377276);}(_0xd01d,0xad));var _0xdd01=function(_0x2db0a1,_0x29f703){_0x2db0a1=_0x2db0a1-0x0;var _0x5e07d7=_0xd01d[_0x2db0a1];return _0x5e07d7;};'use strict';var util=require(_0xdd01('0x0'));var _=require(_0xdd01('0x1'));var Redis=require(_0xdd01('0x2'));var interactionService=require(_0xdd01('0x3'));var qs=require('../../components/parsers/qs');var logger=require(_0xdd01('0x4'))(_0xdd01('0x5'));var config=require('../../config/environment');var db=require(_0xdd01('0x6'))['db'];config[_0xdd01('0x7')]=_[_0xdd01('0x8')](config['redis'],{'host':_0xdd01('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xdd01('0x7')]));require(_0xdd01('0xa'))[_0xdd01('0xb')](socket);var jayson=require(_0xdd01('0xc'));var client=jayson['client'][_0xdd01('0xd')]({'port':0x232c});var client9002=jayson[_0xdd01('0xe')][_0xdd01('0xd')]({'port':0x232a});var interaction_log=require('../../config/logger')('openchannel-interactions');function respondWithRpcPromise(_0x210dd3,_0x57cd1f,_0x540db8,_0x483f22){return new Promise(function(_0x593293,_0x19b073){var _0x551470=_0x483f22||client;return _0x551470[_0xdd01('0xf')](_0x210dd3,_0x540db8)['then'](function(_0x1ca711){logger[_0xdd01('0x10')](_0xdd01('0x11'),_0x57cd1f,_0xdd01('0x12'));logger[_0xdd01('0x13')](_0xdd01('0x14'),_0x57cd1f,_0xdd01('0x12'),JSON[_0xdd01('0x15')](_0x1ca711));if(_0x1ca711[_0xdd01('0x16')]){if(_0x1ca711['error'][_0xdd01('0x17')]===0x1f4){logger[_0xdd01('0x16')](_0xdd01('0x11'),_0x57cd1f,_0x1ca711[_0xdd01('0x16')][_0xdd01('0x18')]);return _0x19b073(_0x1ca711[_0xdd01('0x16')][_0xdd01('0x18')]);}logger[_0xdd01('0x16')]('OpenchannelMessage,\x20%s,\x20%s',_0x57cd1f,_0x1ca711['error'][_0xdd01('0x18')]);return _0x593293(_0x1ca711[_0xdd01('0x16')]['message']);}else{logger['info']('OpenchannelMessage,\x20%s,\x20%s',_0x57cd1f,_0xdd01('0x12'));_0x593293(_0x1ca711[_0xdd01('0x19')]['message']);}})[_0xdd01('0x1a')](function(_0x5cb024){logger[_0xdd01('0x16')]('OpenchannelMessage,\x20%s,\x20%s',_0x57cd1f,_0x5cb024);_0x19b073(_0x5cb024);});});}function respondWithResult(_0x47512b,_0xc631df){_0xc631df=_0xc631df||0xc8;return function(_0x32da9e){if(_0x32da9e){return _0x47512b[_0xdd01('0x1b')](_0xc631df)[_0xdd01('0x1c')](_0x32da9e);}};}function respondWithFilteredResult(_0xfc4150,_0x243799){return function(_0x5603b4){if(_0x5603b4){var _0x38b626=typeof _0x243799[_0xdd01('0x1d')]===_0xdd01('0x1e')&&typeof _0x243799[_0xdd01('0x1f')]===_0xdd01('0x1e');var _0x1e53b0=_0x5603b4[_0xdd01('0x20')];var _0x10c49e=_0x38b626?0x0:_0x243799[_0xdd01('0x1d')];var _0x4d4fe7=_0x38b626?_0x5603b4[_0xdd01('0x20')]:_0x243799[_0xdd01('0x1d')]+_0x243799['limit'];var _0x591c93;if(_0x4d4fe7>=_0x1e53b0){_0x4d4fe7=_0x1e53b0;_0x591c93=0xc8;}else{_0x591c93=0xce;}_0xfc4150[_0xdd01('0x1b')](_0x591c93);return _0xfc4150[_0xdd01('0x21')]('Content-Range',_0x10c49e+'-'+_0x4d4fe7+'/'+_0x1e53b0)['json'](_0x5603b4);}return null;};}function saveUpdates(_0x33f43d){return function(_0x2cc795){if(_0x2cc795){return _0x2cc795[_0xdd01('0x22')](_0x33f43d)[_0xdd01('0x23')](function(_0x5b853e){return _0x5b853e;});}return null;};}function removeEntity(_0x17d71b){return function(_0x3598d8){if(_0x3598d8){return _0x3598d8[_0xdd01('0x24')]()[_0xdd01('0x23')](function(){_0x17d71b[_0xdd01('0x1b')](0xcc)[_0xdd01('0x25')]();});}};}function handleEntityNotFound(_0x472d75){return function(_0xce6d85){if(!_0xce6d85){_0x472d75[_0xdd01('0x26')](0x194);}return _0xce6d85;};}function handleError(_0x46f050,_0x4deddd){_0x4deddd=_0x4deddd||0x1f4;return function(_0x2c099f){logger['error'](_0x2c099f[_0xdd01('0x27')]);if(_0x2c099f[_0xdd01('0x28')]){delete _0x2c099f[_0xdd01('0x28')];}_0x46f050[_0xdd01('0x1b')](_0x4deddd)[_0xdd01('0x29')](_0x2c099f);};}exports[_0xdd01('0x2a')]=function(_0x155ab5,_0x38f0c8){var _0x593eb4={},_0x1132e5={},_0x5067d6={'count':0x0,'rows':[]};var _0x1abc14=_[_0xdd01('0x2b')](db[_0xdd01('0x2c')][_0xdd01('0x2d')],function(_0x31cd6a){return{'name':_0x31cd6a[_0xdd01('0x2e')],'type':_0x31cd6a[_0xdd01('0x2f')]['key']};});_0x1132e5[_0xdd01('0x30')]=_[_0xdd01('0x2b')](_0x1abc14,'name');_0x1132e5['query']=_['keys'](_0x155ab5[_0xdd01('0x31')]);_0x1132e5['filters']=_[_0xdd01('0x32')](_0x1132e5['model'],_0x1132e5[_0xdd01('0x31')]);_0x593eb4[_0xdd01('0x33')]=_[_0xdd01('0x32')](_0x1132e5[_0xdd01('0x30')],qs['fields'](_0x155ab5[_0xdd01('0x31')][_0xdd01('0x34')]));_0x593eb4[_0xdd01('0x33')]=_0x593eb4['attributes']['length']?_0x593eb4['attributes']:_0x1132e5[_0xdd01('0x30')];if(!_0x155ab5['query']['hasOwnProperty'](_0xdd01('0x35'))){_0x593eb4[_0xdd01('0x1f')]=qs['limit'](_0x155ab5[_0xdd01('0x31')][_0xdd01('0x1f')]);_0x593eb4[_0xdd01('0x1d')]=qs['offset'](_0x155ab5[_0xdd01('0x31')]['offset']);}_0x593eb4[_0xdd01('0x36')]=qs[_0xdd01('0x37')](_0x155ab5['query'][_0xdd01('0x37')]);_0x593eb4[_0xdd01('0x38')]=qs[_0xdd01('0x39')](_[_0xdd01('0x3a')](_0x155ab5[_0xdd01('0x31')],_0x1132e5[_0xdd01('0x39')]),_0x1abc14);if(_0x155ab5[_0xdd01('0x31')][_0xdd01('0x3b')]){_0x593eb4[_0xdd01('0x38')]=_[_0xdd01('0x3c')](_0x593eb4[_0xdd01('0x38')],{'$or':_[_0xdd01('0x2b')](_0x1abc14,function(_0x881e9f){if(_0x881e9f[_0xdd01('0x2f')]!==_0xdd01('0x3d')){var _0x205381={};_0x205381[_0x881e9f[_0xdd01('0x28')]]={'$like':'%'+_0x155ab5['query'][_0xdd01('0x3b')]+'%'};return _0x205381;}})});}_0x593eb4=_[_0xdd01('0x3c')]({},_0x593eb4,_0x155ab5[_0xdd01('0x3e')]);var _0x45f2e7={'where':_0x593eb4[_0xdd01('0x38')]};return db[_0xdd01('0x2c')]['count'](_0x45f2e7)[_0xdd01('0x23')](function(_0x16b5d7){_0x5067d6[_0xdd01('0x20')]=_0x16b5d7;if(_0x155ab5[_0xdd01('0x31')][_0xdd01('0x3f')]){_0x593eb4['include']=[{'all':!![]}];}return db[_0xdd01('0x2c')][_0xdd01('0x40')](_0x593eb4);})[_0xdd01('0x23')](function(_0x408672){_0x5067d6[_0xdd01('0x41')]=_0x408672;return _0x5067d6;})[_0xdd01('0x23')](respondWithFilteredResult(_0x38f0c8,_0x593eb4))[_0xdd01('0x1a')](handleError(_0x38f0c8,null));};exports[_0xdd01('0x42')]=function(_0xabe93d,_0x146152){var _0x3c630c={'raw':!![],'where':{'id':_0xabe93d['params']['id']}},_0x411eb1={};_0x411eb1[_0xdd01('0x30')]=_[_0xdd01('0x43')](db[_0xdd01('0x2c')][_0xdd01('0x2d')]);_0x411eb1[_0xdd01('0x31')]=_[_0xdd01('0x43')](_0xabe93d[_0xdd01('0x31')]);_0x411eb1[_0xdd01('0x39')]=_[_0xdd01('0x32')](_0x411eb1[_0xdd01('0x30')],_0x411eb1[_0xdd01('0x31')]);_0x3c630c[_0xdd01('0x33')]=_['intersection'](_0x411eb1[_0xdd01('0x30')],qs[_0xdd01('0x34')](_0xabe93d[_0xdd01('0x31')]['fields']));_0x3c630c[_0xdd01('0x33')]=_0x3c630c['attributes'][_0xdd01('0x44')]?_0x3c630c[_0xdd01('0x33')]:_0x411eb1[_0xdd01('0x30')];if(_0xabe93d[_0xdd01('0x31')][_0xdd01('0x3f')]){_0x3c630c[_0xdd01('0x45')]=[{'all':!![]}];}_0x3c630c=_['merge']({},_0x3c630c,_0xabe93d[_0xdd01('0x3e')]);return db['OpenchannelMessage'][_0xdd01('0x46')](_0x3c630c)['then'](handleEntityNotFound(_0x146152,null))[_0xdd01('0x23')](respondWithResult(_0x146152,null))[_0xdd01('0x1a')](handleError(_0x146152,null));};exports[_0xdd01('0x47')]=function(_0x31b731,_0x4a8b32){return db[_0xdd01('0x2c')][_0xdd01('0x47')](_0x31b731['body'],{})['then'](respondWithResult(_0x4a8b32,0xc9))[_0xdd01('0x1a')](handleError(_0x4a8b32,null));};exports['update']=function(_0x4fca49,_0x2b7b64){if(_0x4fca49['body']['id']){delete _0x4fca49[_0xdd01('0x48')]['id'];}return db[_0xdd01('0x2c')][_0xdd01('0x46')]({'where':{'id':_0x4fca49[_0xdd01('0x49')]['id']}})[_0xdd01('0x23')](handleEntityNotFound(_0x2b7b64,null))['then'](saveUpdates(_0x4fca49[_0xdd01('0x48')],null))[_0xdd01('0x23')](respondWithResult(_0x2b7b64,null))[_0xdd01('0x1a')](handleError(_0x2b7b64,null));};exports[_0xdd01('0x24')]=function(_0x547a22,_0x18e024){return db[_0xdd01('0x2c')][_0xdd01('0x46')]({'where':{'id':_0x547a22['params']['id']}})[_0xdd01('0x23')](handleEntityNotFound(_0x18e024,null))['then'](removeEntity(_0x18e024,null))['catch'](handleError(_0x18e024,null));};exports[_0xdd01('0x4a')]=function(_0xb26083,_0x8dfbd6){return db[_0xdd01('0x2c')][_0xdd01('0x4a')]()[_0xdd01('0x23')](respondWithResult(_0x8dfbd6,null))['catch'](handleError(_0x8dfbd6,null));};exports['accept']=function(_0x1f4ee6,_0xac2400){var _0x3439e3=_0xdd01('0x4b');return interactionService['acceptMessage'](_0x1f4ee6,_0x3439e3)[_0xdd01('0x23')](respondWithResult(_0xac2400,null))['catch'](handleError(_0xac2400,null));};exports['reject']=function(_0x3e0748,_0x54475a){var _0x11481={'agent':{},'channel':_0xdd01('0x4b')};if(_0x3e0748[_0xdd01('0x48')]['id']){delete _0x3e0748[_0xdd01('0x48')]['id'];}_0x3e0748[_0xdd01('0x48')][_0xdd01('0x4c')]=_0x3e0748[_0xdd01('0x48')][_0xdd01('0x4c')]||_0x3e0748[_0xdd01('0x4d')]['id'];_0x11481[_0xdd01('0x4e')]['id']=_0x3e0748[_0xdd01('0x48')][_0xdd01('0x4c')];return db['OpenchannelMessage'][_0xdd01('0x46')]({'where':{'id':_0x3e0748[_0xdd01('0x49')]['id'],'UserId':null}})[_0xdd01('0x23')](handleEntityNotFound(_0x54475a,null))[_0xdd01('0x23')](function(_0x499593){if(_0x499593){_0x11481[_0xdd01('0x18')]=_0x499593[_0xdd01('0x4f')]({'plain':!![]});return db[_0xdd01('0x50')][_0xdd01('0x46')]({'where':{'id':_0x499593[_0xdd01('0x51')]}});}return null;})[_0xdd01('0x23')](handleEntityNotFound(_0x54475a,null))['then'](function(_0x1b9e72){if(_0x1b9e72){_0x11481[_0xdd01('0x52')]=_0x1b9e72['get']({'plain':!![]});interaction_log[_0xdd01('0x10')](_0xdd01('0x53'),_0x3e0748[_0xdd01('0x4d')]['id'],_0x3e0748[_0xdd01('0x4d')][_0xdd01('0x28')],_0x3e0748['user'][_0xdd01('0x54')],_0x11481[_0xdd01('0x52')]['id'],_0x3e0748['body']?JSON[_0xdd01('0x15')](_0x3e0748['body']):_0xdd01('0x55'));return respondWithRpcPromise(_0xdd01('0x56'),_0xdd01('0x57'),_0x11481);}return null;})[_0xdd01('0x23')](function(_0x1e41e7){var _0x300548=_0xdd01('0x58')+_0x1e41e7[_0xdd01('0x18')][_0xdd01('0x59')];return db[_0xdd01('0x5a')][_0xdd01('0x31')](_0x300548,{'type':db[_0xdd01('0x5b')][_0xdd01('0x5c')][_0xdd01('0x5d')],'raw':!![]})['then'](function(_0x3d2932){return _0x3d2932;});})[_0xdd01('0x23')](function(_0x258484){if(_0x258484){_0x11481[_0xdd01('0x18')][_0xdd01('0x5e')]=_0x258484[0x0];if(!_0x3e0748[_0xdd01('0x48')]['UserId'])return;return db[_0xdd01('0x5f')][_0xdd01('0x46')]({'where':{'id':_0x3e0748[_0xdd01('0x48')]['UserId'],'role':_0xdd01('0x4e')},'attributes':['id','name','fullname',_0xdd01('0x60'),'internal'],'raw':!![]});}return null;})[_0xdd01('0x23')](function(_0x20c061){if(!_0x20c061)return null;_0x11481[_0xdd01('0x18')][_0xdd01('0x4e')]=_0x20c061;return _0x11481;})['then'](function(_0x6c9deb){if(_0x6c9deb){_0x6c9deb['message'][_0xdd01('0x61')]=util['format']('SIP/%s',_0x3e0748[_0xdd01('0x4d')]['name']);_0x6c9deb[_0xdd01('0x18')][_0xdd01('0x62')]=_0x11481[_0xdd01('0x62')];_0x6c9deb[_0xdd01('0x18')][_0xdd01('0x63')]=_0x11481['channel'];_0x6c9deb[_0xdd01('0x18')][_0xdd01('0x64')]=_0xdd01('0x65');respondWithRpcPromise('EventManager',_0xdd01('0x66'),{'event':_0xdd01('0x67'),'message':_0x6c9deb[_0xdd01('0x18')]},client9002);return _0x11481;}return null;})['then'](respondWithResult(_0x54475a,null))['catch'](handleError(_0x54475a,null));};