45da05d434581e507ac5b8e22e219667f9fdd4fb
[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 _0xc331=['stack','name','send','index','map','OpenchannelMessage','rawAttributes','fieldName','type','model','query','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','filters','pick','merge','VIRTUAL','filter','includeAll','include','findAll','rows','show','params','keys','options','find','body','update','destroy','describe','accept','openchannel','acceptMessage','reject','UserId','user','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','SELECT','agent','fullname','internal','interface','SIP/%s','channel','motionChannel','event','EventManager','rejectmessage','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','defaults','socket.io-emitter','redis','./openchannelMessage.socket','register','jayson/promise','http','client','openchannel-interactions','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','status','json','offset','limit','count','set','Content-Range','end','sendStatus'];(function(_0x5d4e3b,_0x4c5743){var _0x459192=function(_0x5b3d74){while(--_0x5b3d74){_0x5d4e3b['push'](_0x5d4e3b['shift']());}};_0x459192(++_0x4c5743);}(_0xc331,0xab));var _0x1c33=function(_0x5c5766,_0x485201){_0x5c5766=_0x5c5766-0x0;var _0x4f4cf4=_0xc331[_0x5c5766];return _0x4f4cf4;};'use strict';var util=require('util');var _=require(_0x1c33('0x0'));var Redis=require(_0x1c33('0x1'));var interactionService=require('../../components/interaction/service');var qs=require(_0x1c33('0x2'));var logger=require(_0x1c33('0x3'))(_0x1c33('0x4'));var config=require(_0x1c33('0x5'));var db=require(_0x1c33('0x6'))['db'];config['redis']=_[_0x1c33('0x7')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x1c33('0x8'))(new Redis(config[_0x1c33('0x9')]));require(_0x1c33('0xa'))[_0x1c33('0xb')](socket);var jayson=require(_0x1c33('0xc'));var client=jayson['client'][_0x1c33('0xd')]({'port':0x232c});var client9002=jayson[_0x1c33('0xe')][_0x1c33('0xd')]({'port':0x232a});var interaction_log=require(_0x1c33('0x3'))(_0x1c33('0xf'));function respondWithRpcPromise(_0x3f3f8a,_0x1d6ce4,_0x52ef31,_0x449ddb){return new Promise(function(_0x3af935,_0x9939eb){var _0xaf6298=_0x449ddb||client;return _0xaf6298[_0x1c33('0x10')](_0x3f3f8a,_0x52ef31)[_0x1c33('0x11')](function(_0x197db1){logger[_0x1c33('0x12')](_0x1c33('0x13'),_0x1d6ce4,_0x1c33('0x14'));logger[_0x1c33('0x15')](_0x1c33('0x16'),_0x1d6ce4,_0x1c33('0x14'),JSON[_0x1c33('0x17')](_0x197db1));if(_0x197db1[_0x1c33('0x18')]){if(_0x197db1[_0x1c33('0x18')]['code']===0x1f4){logger[_0x1c33('0x18')](_0x1c33('0x13'),_0x1d6ce4,_0x197db1[_0x1c33('0x18')][_0x1c33('0x19')]);return _0x9939eb(_0x197db1[_0x1c33('0x18')][_0x1c33('0x19')]);}logger[_0x1c33('0x18')]('OpenchannelMessage,\x20%s,\x20%s',_0x1d6ce4,_0x197db1['error'][_0x1c33('0x19')]);return _0x3af935(_0x197db1[_0x1c33('0x18')]['message']);}else{logger[_0x1c33('0x12')]('OpenchannelMessage,\x20%s,\x20%s',_0x1d6ce4,_0x1c33('0x14'));_0x3af935(_0x197db1[_0x1c33('0x1a')]['message']);}})[_0x1c33('0x1b')](function(_0x1d4d70){logger['error'](_0x1c33('0x13'),_0x1d6ce4,_0x1d4d70);_0x9939eb(_0x1d4d70);});});}function respondWithResult(_0x6f5ab4,_0x24e20d){_0x24e20d=_0x24e20d||0xc8;return function(_0x118d91){if(_0x118d91){return _0x6f5ab4[_0x1c33('0x1c')](_0x24e20d)[_0x1c33('0x1d')](_0x118d91);}};}function respondWithFilteredResult(_0x5b8b97,_0x8f9f7c){return function(_0x95d366){if(_0x95d366){var _0x3e2b8e=typeof _0x8f9f7c[_0x1c33('0x1e')]==='undefined'&&typeof _0x8f9f7c[_0x1c33('0x1f')]==='undefined';var _0x25277e=_0x95d366[_0x1c33('0x20')];var _0x38decb=_0x3e2b8e?0x0:_0x8f9f7c[_0x1c33('0x1e')];var _0x287a90=_0x3e2b8e?_0x95d366[_0x1c33('0x20')]:_0x8f9f7c['offset']+_0x8f9f7c[_0x1c33('0x1f')];var _0xde9a7e;if(_0x287a90>=_0x25277e){_0x287a90=_0x25277e;_0xde9a7e=0xc8;}else{_0xde9a7e=0xce;}_0x5b8b97[_0x1c33('0x1c')](_0xde9a7e);return _0x5b8b97[_0x1c33('0x21')](_0x1c33('0x22'),_0x38decb+'-'+_0x287a90+'/'+_0x25277e)[_0x1c33('0x1d')](_0x95d366);}return null;};}function saveUpdates(_0x58bfe4){return function(_0x1b062b){if(_0x1b062b){return _0x1b062b['update'](_0x58bfe4)[_0x1c33('0x11')](function(_0x320dad){return _0x320dad;});}return null;};}function removeEntity(_0xaa34f2){return function(_0x41758a){if(_0x41758a){return _0x41758a['destroy']()['then'](function(){_0xaa34f2[_0x1c33('0x1c')](0xcc)[_0x1c33('0x23')]();});}};}function handleEntityNotFound(_0x1835e0){return function(_0x3cfc93){if(!_0x3cfc93){_0x1835e0[_0x1c33('0x24')](0x194);}return _0x3cfc93;};}function handleError(_0xd11372,_0x18e29b){_0x18e29b=_0x18e29b||0x1f4;return function(_0x42870a){logger[_0x1c33('0x18')](_0x42870a[_0x1c33('0x25')]);if(_0x42870a[_0x1c33('0x26')]){delete _0x42870a[_0x1c33('0x26')];}_0xd11372[_0x1c33('0x1c')](_0x18e29b)[_0x1c33('0x27')](_0x42870a);};}exports[_0x1c33('0x28')]=function(_0x33d95d,_0x58a52e){var _0x1a46b1={},_0xe779dc={},_0x42198d={'count':0x0,'rows':[]};var _0x527ac3=_[_0x1c33('0x29')](db[_0x1c33('0x2a')][_0x1c33('0x2b')],function(_0xb19fe){return{'name':_0xb19fe[_0x1c33('0x2c')],'type':_0xb19fe[_0x1c33('0x2d')]['key']};});_0xe779dc[_0x1c33('0x2e')]=_['map'](_0x527ac3,_0x1c33('0x26'));_0xe779dc[_0x1c33('0x2f')]=_['keys'](_0x33d95d[_0x1c33('0x2f')]);_0xe779dc['filters']=_['intersection'](_0xe779dc[_0x1c33('0x2e')],_0xe779dc[_0x1c33('0x2f')]);_0x1a46b1[_0x1c33('0x30')]=_[_0x1c33('0x31')](_0xe779dc[_0x1c33('0x2e')],qs[_0x1c33('0x32')](_0x33d95d[_0x1c33('0x2f')][_0x1c33('0x32')]));_0x1a46b1[_0x1c33('0x30')]=_0x1a46b1['attributes'][_0x1c33('0x33')]?_0x1a46b1[_0x1c33('0x30')]:_0xe779dc[_0x1c33('0x2e')];if(!_0x33d95d[_0x1c33('0x2f')][_0x1c33('0x34')]('nolimit')){_0x1a46b1[_0x1c33('0x1f')]=qs[_0x1c33('0x1f')](_0x33d95d[_0x1c33('0x2f')][_0x1c33('0x1f')]);_0x1a46b1[_0x1c33('0x1e')]=qs['offset'](_0x33d95d['query'][_0x1c33('0x1e')]);}_0x1a46b1[_0x1c33('0x35')]=qs[_0x1c33('0x36')](_0x33d95d[_0x1c33('0x2f')]['sort']);_0x1a46b1[_0x1c33('0x37')]=qs[_0x1c33('0x38')](_[_0x1c33('0x39')](_0x33d95d[_0x1c33('0x2f')],_0xe779dc[_0x1c33('0x38')]),_0x527ac3);if(_0x33d95d['query']['filter']){_0x1a46b1['where']=_[_0x1c33('0x3a')](_0x1a46b1['where'],{'$or':_[_0x1c33('0x29')](_0x527ac3,function(_0x11dc1e){if(_0x11dc1e[_0x1c33('0x2d')]!==_0x1c33('0x3b')){var _0x3c9e10={};_0x3c9e10[_0x11dc1e[_0x1c33('0x26')]]={'$like':'%'+_0x33d95d[_0x1c33('0x2f')][_0x1c33('0x3c')]+'%'};return _0x3c9e10;}})});}_0x1a46b1=_['merge']({},_0x1a46b1,_0x33d95d['options']);var _0xf44bf6={'where':_0x1a46b1[_0x1c33('0x37')]};return db[_0x1c33('0x2a')][_0x1c33('0x20')](_0xf44bf6)[_0x1c33('0x11')](function(_0x3c100c){_0x42198d['count']=_0x3c100c;if(_0x33d95d[_0x1c33('0x2f')][_0x1c33('0x3d')]){_0x1a46b1[_0x1c33('0x3e')]=[{'all':!![]}];}return db['OpenchannelMessage'][_0x1c33('0x3f')](_0x1a46b1);})[_0x1c33('0x11')](function(_0x3973ab){_0x42198d[_0x1c33('0x40')]=_0x3973ab;return _0x42198d;})[_0x1c33('0x11')](respondWithFilteredResult(_0x58a52e,_0x1a46b1))[_0x1c33('0x1b')](handleError(_0x58a52e,null));};exports[_0x1c33('0x41')]=function(_0x59f245,_0x3a44f0){var _0x42b268={'raw':!![],'where':{'id':_0x59f245[_0x1c33('0x42')]['id']}},_0xd1703e={};_0xd1703e['model']=_['keys'](db[_0x1c33('0x2a')]['rawAttributes']);_0xd1703e[_0x1c33('0x2f')]=_[_0x1c33('0x43')](_0x59f245[_0x1c33('0x2f')]);_0xd1703e[_0x1c33('0x38')]=_[_0x1c33('0x31')](_0xd1703e[_0x1c33('0x2e')],_0xd1703e[_0x1c33('0x2f')]);_0x42b268[_0x1c33('0x30')]=_[_0x1c33('0x31')](_0xd1703e[_0x1c33('0x2e')],qs[_0x1c33('0x32')](_0x59f245[_0x1c33('0x2f')]['fields']));_0x42b268[_0x1c33('0x30')]=_0x42b268[_0x1c33('0x30')][_0x1c33('0x33')]?_0x42b268[_0x1c33('0x30')]:_0xd1703e[_0x1c33('0x2e')];if(_0x59f245[_0x1c33('0x2f')]['includeAll']){_0x42b268[_0x1c33('0x3e')]=[{'all':!![]}];}_0x42b268=_[_0x1c33('0x3a')]({},_0x42b268,_0x59f245[_0x1c33('0x44')]);return db[_0x1c33('0x2a')][_0x1c33('0x45')](_0x42b268)[_0x1c33('0x11')](handleEntityNotFound(_0x3a44f0,null))[_0x1c33('0x11')](respondWithResult(_0x3a44f0,null))[_0x1c33('0x1b')](handleError(_0x3a44f0,null));};exports['create']=function(_0x191a79,_0x2a11ea){return db['OpenchannelMessage']['create'](_0x191a79[_0x1c33('0x46')],{})['then'](respondWithResult(_0x2a11ea,0xc9))['catch'](handleError(_0x2a11ea,null));};exports[_0x1c33('0x47')]=function(_0x48399e,_0x17499f){if(_0x48399e[_0x1c33('0x46')]['id']){delete _0x48399e['body']['id'];}return db[_0x1c33('0x2a')][_0x1c33('0x45')]({'where':{'id':_0x48399e['params']['id']}})['then'](handleEntityNotFound(_0x17499f,null))[_0x1c33('0x11')](saveUpdates(_0x48399e[_0x1c33('0x46')],null))[_0x1c33('0x11')](respondWithResult(_0x17499f,null))[_0x1c33('0x1b')](handleError(_0x17499f,null));};exports[_0x1c33('0x48')]=function(_0x119009,_0x128ab6){return db[_0x1c33('0x2a')][_0x1c33('0x45')]({'where':{'id':_0x119009[_0x1c33('0x42')]['id']}})[_0x1c33('0x11')](handleEntityNotFound(_0x128ab6,null))[_0x1c33('0x11')](removeEntity(_0x128ab6,null))[_0x1c33('0x1b')](handleError(_0x128ab6,null));};exports[_0x1c33('0x49')]=function(_0x1cb79e,_0x4f6ed4){return db[_0x1c33('0x2a')][_0x1c33('0x49')]()['then'](respondWithResult(_0x4f6ed4,null))[_0x1c33('0x1b')](handleError(_0x4f6ed4,null));};exports[_0x1c33('0x4a')]=function(_0x2d1e5a,_0x484f55){var _0x42a818=_0x1c33('0x4b');return interactionService[_0x1c33('0x4c')](_0x2d1e5a,_0x42a818)[_0x1c33('0x11')](respondWithResult(_0x484f55,null))[_0x1c33('0x1b')](handleError(_0x484f55,null));};exports[_0x1c33('0x4d')]=function(_0x2946ed,_0x178ef7){var _0x4409b1={'agent':{},'channel':'openchannel'};if(_0x2946ed['body']['id']){delete _0x2946ed[_0x1c33('0x46')]['id'];}_0x2946ed['body'][_0x1c33('0x4e')]=_0x2946ed[_0x1c33('0x46')][_0x1c33('0x4e')]||_0x2946ed[_0x1c33('0x4f')]['id'];_0x4409b1['agent']['id']=_0x2946ed[_0x1c33('0x46')][_0x1c33('0x4e')];return db[_0x1c33('0x2a')]['find']({'where':{'id':_0x2946ed['params']['id'],'UserId':null}})[_0x1c33('0x11')](handleEntityNotFound(_0x178ef7,null))['then'](function(_0x2ac107){if(_0x2ac107){_0x4409b1[_0x1c33('0x19')]=_0x2ac107[_0x1c33('0x50')]({'plain':!![]});return db[_0x1c33('0x51')][_0x1c33('0x45')]({'where':{'id':_0x2ac107[_0x1c33('0x52')]}});}return null;})[_0x1c33('0x11')](handleEntityNotFound(_0x178ef7,null))[_0x1c33('0x11')](function(_0x2d1716){if(_0x2d1716){_0x4409b1[_0x1c33('0x53')]=_0x2d1716['get']({'plain':!![]});interaction_log[_0x1c33('0x12')](_0x1c33('0x54'),_0x2946ed['user']['id'],_0x2946ed[_0x1c33('0x4f')][_0x1c33('0x26')],_0x2946ed[_0x1c33('0x4f')][_0x1c33('0x55')],_0x4409b1[_0x1c33('0x53')]['id'],_0x2946ed[_0x1c33('0x46')]?JSON['stringify'](_0x2946ed[_0x1c33('0x46')]):_0x1c33('0x56'));return respondWithRpcPromise(_0x1c33('0x57'),_0x1c33('0x58'),_0x4409b1);}return null;})[_0x1c33('0x11')](function(_0x5da09e){var _0x2f4eef=_0x1c33('0x59')+_0x5da09e[_0x1c33('0x19')][_0x1c33('0x5a')];return db[_0x1c33('0x5b')][_0x1c33('0x2f')](_0x2f4eef,{'type':db[_0x1c33('0x5c')]['QueryTypes'][_0x1c33('0x5d')],'raw':!![]})[_0x1c33('0x11')](function(_0x2b8c05){return _0x2b8c05;});})[_0x1c33('0x11')](function(_0x5e62b4){if(_0x5e62b4){_0x4409b1[_0x1c33('0x19')]['contact']=_0x5e62b4[0x0];if(!_0x2946ed[_0x1c33('0x46')][_0x1c33('0x4e')])return;return db['User'][_0x1c33('0x45')]({'where':{'id':_0x2946ed[_0x1c33('0x46')]['UserId'],'role':_0x1c33('0x5e')},'attributes':['id',_0x1c33('0x26'),_0x1c33('0x5f'),'email',_0x1c33('0x60')],'raw':!![]});}return null;})[_0x1c33('0x11')](function(_0x259a29){if(!_0x259a29)return null;_0x4409b1[_0x1c33('0x19')][_0x1c33('0x5e')]=_0x259a29;return _0x4409b1;})['then'](function(_0x16bef8){if(_0x16bef8){_0x16bef8[_0x1c33('0x19')][_0x1c33('0x61')]=util['format'](_0x1c33('0x62'),_0x2946ed[_0x1c33('0x4f')][_0x1c33('0x26')]);_0x16bef8[_0x1c33('0x19')][_0x1c33('0x63')]=_0x4409b1[_0x1c33('0x63')];_0x16bef8['message'][_0x1c33('0x64')]=_0x4409b1['channel'];_0x16bef8[_0x1c33('0x19')][_0x1c33('0x65')]=_0x1c33('0x4d');respondWithRpcPromise(_0x1c33('0x66'),_0x1c33('0x66'),{'event':_0x1c33('0x67'),'message':_0x16bef8['message']},client9002);return _0x4409b1;}return null;})[_0x1c33('0x11')](respondWithResult(_0x178ef7,null))['catch'](handleError(_0x178ef7,null));};