Built motion from commit 10af8726.|2.6.34
[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 _0x0031=['Sequelize','QueryTypes','SELECT','User','fullname','internal','interface','channel','motionChannel','event','EventManager','rejectmessage','util','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','defaults','redis','localhost','./openchannelMessage.socket','register','jayson/promise','http','client','openchannel-interactions','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','code','message','error','result','catch','json','limit','undefined','count','offset','status','set','update','destroy','end','stack','name','map','type','query','filters','model','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','OpenchannelMessage','includeAll','include','findAll','show','params','keys','rawAttributes','length','options','find','create','body','describe','accept','reject','UserId','user','agent','get','OpenchannelInteractionId','interaction','role','null','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize'];(function(_0x2d3620,_0x3eeff2){var _0x5156e0=function(_0x382dec){while(--_0x382dec){_0x2d3620['push'](_0x2d3620['shift']());}};_0x5156e0(++_0x3eeff2);}(_0x0031,0x1e7));var _0x1003=function(_0x3b0a77,_0x526a1b){_0x3b0a77=_0x3b0a77-0x0;var _0x1ad1fe=_0x0031[_0x3b0a77];return _0x1ad1fe;};'use strict';var util=require(_0x1003('0x0'));var _=require(_0x1003('0x1'));var Redis=require(_0x1003('0x2'));var interactionService=require(_0x1003('0x3'));var qs=require(_0x1003('0x4'));var logger=require(_0x1003('0x5'))(_0x1003('0x6'));var config=require(_0x1003('0x7'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x1003('0x8')](config[_0x1003('0x9')],{'host':_0x1003('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x1003('0x9')]));require(_0x1003('0xb'))[_0x1003('0xc')](socket);var jayson=require(_0x1003('0xd'));var client=jayson['client'][_0x1003('0xe')]({'port':0x232c});var client9002=jayson[_0x1003('0xf')]['http']({'port':0x232a});var interaction_log=require('../../config/logger')(_0x1003('0x10'));function respondWithRpcPromise(_0x90bd7,_0x513448,_0x1e8773,_0x23bc83){return new Promise(function(_0x355247,_0x1b8a9e){var _0xc8ead2=_0x23bc83||client;return _0xc8ead2['request'](_0x90bd7,_0x1e8773)[_0x1003('0x11')](function(_0x2674ef){logger[_0x1003('0x12')](_0x1003('0x13'),_0x513448,_0x1003('0x14'));logger[_0x1003('0x15')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x513448,'request\x20sent',JSON[_0x1003('0x16')](_0x2674ef));if(_0x2674ef['error']){if(_0x2674ef['error'][_0x1003('0x17')]===0x1f4){logger['error'](_0x1003('0x13'),_0x513448,_0x2674ef['error'][_0x1003('0x18')]);return _0x1b8a9e(_0x2674ef[_0x1003('0x19')][_0x1003('0x18')]);}logger[_0x1003('0x19')]('OpenchannelMessage,\x20%s,\x20%s',_0x513448,_0x2674ef[_0x1003('0x19')][_0x1003('0x18')]);return _0x355247(_0x2674ef[_0x1003('0x19')]['message']);}else{logger[_0x1003('0x12')](_0x1003('0x13'),_0x513448,_0x1003('0x14'));_0x355247(_0x2674ef[_0x1003('0x1a')]['message']);}})[_0x1003('0x1b')](function(_0x2598e8){logger[_0x1003('0x19')]('OpenchannelMessage,\x20%s,\x20%s',_0x513448,_0x2598e8);_0x1b8a9e(_0x2598e8);});});}function respondWithResult(_0x4654da,_0x34f2e8){_0x34f2e8=_0x34f2e8||0xc8;return function(_0x31ad19){if(_0x31ad19){return _0x4654da['status'](_0x34f2e8)[_0x1003('0x1c')](_0x31ad19);}};}function respondWithFilteredResult(_0x539bcb,_0x3e43bc){return function(_0x2a00e8){if(_0x2a00e8){var _0x50fad8=typeof _0x3e43bc['offset']==='undefined'&&typeof _0x3e43bc[_0x1003('0x1d')]===_0x1003('0x1e');var _0x10fb7f=_0x2a00e8[_0x1003('0x1f')];var _0x40ee91=_0x50fad8?0x0:_0x3e43bc[_0x1003('0x20')];var _0x5b53cd=_0x50fad8?_0x2a00e8[_0x1003('0x1f')]:_0x3e43bc[_0x1003('0x20')]+_0x3e43bc[_0x1003('0x1d')];var _0x186e3f;if(_0x5b53cd>=_0x10fb7f){_0x5b53cd=_0x10fb7f;_0x186e3f=0xc8;}else{_0x186e3f=0xce;}_0x539bcb[_0x1003('0x21')](_0x186e3f);return _0x539bcb[_0x1003('0x22')]('Content-Range',_0x40ee91+'-'+_0x5b53cd+'/'+_0x10fb7f)[_0x1003('0x1c')](_0x2a00e8);}return null;};}function saveUpdates(_0x810805){return function(_0x51e606){if(_0x51e606){return _0x51e606[_0x1003('0x23')](_0x810805)[_0x1003('0x11')](function(_0x537ae9){return _0x537ae9;});}return null;};}function removeEntity(_0xbe9be1){return function(_0x551f00){if(_0x551f00){return _0x551f00[_0x1003('0x24')]()[_0x1003('0x11')](function(){_0xbe9be1['status'](0xcc)[_0x1003('0x25')]();});}};}function handleEntityNotFound(_0x1f2f24){return function(_0x497673){if(!_0x497673){_0x1f2f24['sendStatus'](0x194);}return _0x497673;};}function handleError(_0x4b4188,_0x1aa278){_0x1aa278=_0x1aa278||0x1f4;return function(_0x258b36){logger[_0x1003('0x19')](_0x258b36[_0x1003('0x26')]);if(_0x258b36['name']){delete _0x258b36[_0x1003('0x27')];}_0x4b4188[_0x1003('0x21')](_0x1aa278)['send'](_0x258b36);};}exports['index']=function(_0x16dc01,_0x1dd2d9){var _0x8de577={},_0x2675aa={},_0x1c59d7={'count':0x0,'rows':[]};var _0x28633c=_[_0x1003('0x28')](db['OpenchannelMessage']['rawAttributes'],function(_0x5ae28b){return{'name':_0x5ae28b['fieldName'],'type':_0x5ae28b[_0x1003('0x29')]['key']};});_0x2675aa['model']=_[_0x1003('0x28')](_0x28633c,'name');_0x2675aa[_0x1003('0x2a')]=_['keys'](_0x16dc01[_0x1003('0x2a')]);_0x2675aa[_0x1003('0x2b')]=_['intersection'](_0x2675aa[_0x1003('0x2c')],_0x2675aa[_0x1003('0x2a')]);_0x8de577['attributes']=_[_0x1003('0x2d')](_0x2675aa[_0x1003('0x2c')],qs[_0x1003('0x2e')](_0x16dc01[_0x1003('0x2a')][_0x1003('0x2e')]));_0x8de577[_0x1003('0x2f')]=_0x8de577['attributes']['length']?_0x8de577[_0x1003('0x2f')]:_0x2675aa[_0x1003('0x2c')];if(!_0x16dc01[_0x1003('0x2a')][_0x1003('0x30')](_0x1003('0x31'))){_0x8de577[_0x1003('0x1d')]=qs[_0x1003('0x1d')](_0x16dc01['query']['limit']);_0x8de577[_0x1003('0x20')]=qs[_0x1003('0x20')](_0x16dc01['query'][_0x1003('0x20')]);}_0x8de577[_0x1003('0x32')]=qs[_0x1003('0x33')](_0x16dc01[_0x1003('0x2a')][_0x1003('0x33')]);_0x8de577['where']=qs[_0x1003('0x2b')](_[_0x1003('0x34')](_0x16dc01[_0x1003('0x2a')],_0x2675aa['filters']),_0x28633c);if(_0x16dc01[_0x1003('0x2a')][_0x1003('0x35')]){_0x8de577[_0x1003('0x36')]=_['merge'](_0x8de577[_0x1003('0x36')],{'$or':_[_0x1003('0x28')](_0x28633c,function(_0x67d73){if(_0x67d73['type']!=='VIRTUAL'){var _0x4d2aac={};_0x4d2aac[_0x67d73[_0x1003('0x27')]]={'$like':'%'+_0x16dc01[_0x1003('0x2a')][_0x1003('0x35')]+'%'};return _0x4d2aac;}})});}_0x8de577=_[_0x1003('0x37')]({},_0x8de577,_0x16dc01['options']);var _0x4ba3de={'where':_0x8de577[_0x1003('0x36')]};return db[_0x1003('0x38')][_0x1003('0x1f')](_0x4ba3de)[_0x1003('0x11')](function(_0xd55308){_0x1c59d7[_0x1003('0x1f')]=_0xd55308;if(_0x16dc01['query'][_0x1003('0x39')]){_0x8de577[_0x1003('0x3a')]=[{'all':!![]}];}return db[_0x1003('0x38')][_0x1003('0x3b')](_0x8de577);})[_0x1003('0x11')](function(_0x2cc3fd){_0x1c59d7['rows']=_0x2cc3fd;return _0x1c59d7;})[_0x1003('0x11')](respondWithFilteredResult(_0x1dd2d9,_0x8de577))['catch'](handleError(_0x1dd2d9,null));};exports[_0x1003('0x3c')]=function(_0x30b283,_0x41e45f){var _0x222ad8={'raw':!![],'where':{'id':_0x30b283[_0x1003('0x3d')]['id']}},_0xeefd3e={};_0xeefd3e[_0x1003('0x2c')]=_[_0x1003('0x3e')](db['OpenchannelMessage'][_0x1003('0x3f')]);_0xeefd3e['query']=_[_0x1003('0x3e')](_0x30b283[_0x1003('0x2a')]);_0xeefd3e[_0x1003('0x2b')]=_['intersection'](_0xeefd3e['model'],_0xeefd3e[_0x1003('0x2a')]);_0x222ad8['attributes']=_[_0x1003('0x2d')](_0xeefd3e['model'],qs[_0x1003('0x2e')](_0x30b283[_0x1003('0x2a')][_0x1003('0x2e')]));_0x222ad8['attributes']=_0x222ad8[_0x1003('0x2f')][_0x1003('0x40')]?_0x222ad8[_0x1003('0x2f')]:_0xeefd3e[_0x1003('0x2c')];if(_0x30b283[_0x1003('0x2a')][_0x1003('0x39')]){_0x222ad8[_0x1003('0x3a')]=[{'all':!![]}];}_0x222ad8=_[_0x1003('0x37')]({},_0x222ad8,_0x30b283[_0x1003('0x41')]);return db['OpenchannelMessage'][_0x1003('0x42')](_0x222ad8)[_0x1003('0x11')](handleEntityNotFound(_0x41e45f,null))[_0x1003('0x11')](respondWithResult(_0x41e45f,null))[_0x1003('0x1b')](handleError(_0x41e45f,null));};exports[_0x1003('0x43')]=function(_0x459301,_0x382e65){return db[_0x1003('0x38')][_0x1003('0x43')](_0x459301[_0x1003('0x44')],{})[_0x1003('0x11')](respondWithResult(_0x382e65,0xc9))[_0x1003('0x1b')](handleError(_0x382e65,null));};exports[_0x1003('0x23')]=function(_0x2a3f54,_0x32e60e){if(_0x2a3f54[_0x1003('0x44')]['id']){delete _0x2a3f54[_0x1003('0x44')]['id'];}return db[_0x1003('0x38')]['find']({'where':{'id':_0x2a3f54[_0x1003('0x3d')]['id']}})['then'](handleEntityNotFound(_0x32e60e,null))['then'](saveUpdates(_0x2a3f54['body'],null))[_0x1003('0x11')](respondWithResult(_0x32e60e,null))[_0x1003('0x1b')](handleError(_0x32e60e,null));};exports['destroy']=function(_0x16df3d,_0x4addff){return db[_0x1003('0x38')][_0x1003('0x42')]({'where':{'id':_0x16df3d[_0x1003('0x3d')]['id']}})[_0x1003('0x11')](handleEntityNotFound(_0x4addff,null))[_0x1003('0x11')](removeEntity(_0x4addff,null))[_0x1003('0x1b')](handleError(_0x4addff,null));};exports[_0x1003('0x45')]=function(_0x11cd23,_0x39b2f2){return db[_0x1003('0x38')]['describe']()[_0x1003('0x11')](respondWithResult(_0x39b2f2,null))[_0x1003('0x1b')](handleError(_0x39b2f2,null));};exports[_0x1003('0x46')]=function(_0x511026,_0x6bcc0d){var _0x2f492c='openchannel';return interactionService['acceptMessage'](_0x511026,_0x2f492c)['then'](respondWithResult(_0x6bcc0d,null))[_0x1003('0x1b')](handleError(_0x6bcc0d,null));};exports[_0x1003('0x47')]=function(_0x26f0dc,_0x2a8e4c){var _0x2958b3={'agent':{},'channel':'openchannel'};if(_0x26f0dc[_0x1003('0x44')]['id']){delete _0x26f0dc[_0x1003('0x44')]['id'];}_0x26f0dc['body'][_0x1003('0x48')]=_0x26f0dc['body'][_0x1003('0x48')]||_0x26f0dc[_0x1003('0x49')]['id'];_0x2958b3[_0x1003('0x4a')]['id']=_0x26f0dc[_0x1003('0x44')][_0x1003('0x48')];return db[_0x1003('0x38')][_0x1003('0x42')]({'where':{'id':_0x26f0dc[_0x1003('0x3d')]['id'],'UserId':null}})[_0x1003('0x11')](handleEntityNotFound(_0x2a8e4c,null))['then'](function(_0x9f7e0a){if(_0x9f7e0a){_0x2958b3[_0x1003('0x18')]=_0x9f7e0a[_0x1003('0x4b')]({'plain':!![]});return db['OpenchannelInteraction'][_0x1003('0x42')]({'where':{'id':_0x9f7e0a[_0x1003('0x4c')]}});}return null;})[_0x1003('0x11')](handleEntityNotFound(_0x2a8e4c,null))[_0x1003('0x11')](function(_0x110cb1){if(_0x110cb1){_0x2958b3[_0x1003('0x4d')]=_0x110cb1[_0x1003('0x4b')]({'plain':!![]});interaction_log[_0x1003('0x12')]('[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x26f0dc[_0x1003('0x49')]['id'],_0x26f0dc['user']['name'],_0x26f0dc['user'][_0x1003('0x4e')],_0x2958b3[_0x1003('0x4d')]['id'],_0x26f0dc[_0x1003('0x44')]?JSON[_0x1003('0x16')](_0x26f0dc[_0x1003('0x44')]):_0x1003('0x4f'));return respondWithRpcPromise('RejectMessage',_0x1003('0x50'),_0x2958b3);}return null;})[_0x1003('0x11')](function(_0x532326){var _0x53a13b=_0x1003('0x51')+_0x532326[_0x1003('0x18')]['ContactId'];return db[_0x1003('0x52')][_0x1003('0x2a')](_0x53a13b,{'type':db[_0x1003('0x53')][_0x1003('0x54')][_0x1003('0x55')],'raw':!![]})[_0x1003('0x11')](function(_0x5b72bf){return _0x5b72bf;});})[_0x1003('0x11')](function(_0x13e791){if(_0x13e791){_0x2958b3['message']['contact']=_0x13e791[0x0];if(!_0x26f0dc['body'][_0x1003('0x48')])return;return db[_0x1003('0x56')]['find']({'where':{'id':_0x26f0dc[_0x1003('0x44')][_0x1003('0x48')],'role':_0x1003('0x4a')},'attributes':['id',_0x1003('0x27'),_0x1003('0x57'),'email',_0x1003('0x58')],'raw':!![]});}return null;})[_0x1003('0x11')](function(_0x2a646c){if(!_0x2a646c)return null;_0x2958b3[_0x1003('0x18')]['agent']=_0x2a646c;return _0x2958b3;})['then'](function(_0x569a39){if(_0x569a39){_0x569a39[_0x1003('0x18')][_0x1003('0x59')]=util['format']('SIP/%s',_0x26f0dc[_0x1003('0x49')]['name']);_0x569a39[_0x1003('0x18')][_0x1003('0x5a')]=_0x2958b3[_0x1003('0x5a')];_0x569a39[_0x1003('0x18')][_0x1003('0x5b')]=_0x2958b3[_0x1003('0x5a')];_0x569a39[_0x1003('0x18')][_0x1003('0x5c')]=_0x1003('0x47');respondWithRpcPromise('EventManager',_0x1003('0x5d'),{'event':_0x1003('0x5e'),'message':_0x569a39[_0x1003('0x18')]},client9002);return _0x2958b3;}return null;})[_0x1003('0x11')](respondWithResult(_0x2a8e4c,null))[_0x1003('0x1b')](handleError(_0x2a8e4c,null));};