Built motion from commit ba71417a.|2.6.28
[motion2.git] / server / api / voiceExtension / voiceExtension.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 _0xe337=['params','context','description','cutdigits','mandatoryDisposition','alias','addApplications','sequelize','Transaction','READ_COMMITTED','findOne','isApp','createRouting','bulkCreate','findAndCountAll','finally','../../components/parsers/qs','../../config/logger','api','redis','defaults','localhost','./voiceExtension.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','destroy','then','inbound','OutboundRoutes','outbound','internal','ignore','map','value','includes','type','find','name','UserProfileResource','error','send','index','VoiceExtension','rawAttributes','fieldName','key','model','query','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filters','filter','VIRTUAL','merge','options','include','findAll','catch','show','keys','includeAll','create','body','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','InboundRoutes','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update'];(function(_0x2d4b0b,_0x59a4c5){var _0x1db492=function(_0x719b05){while(--_0x719b05){_0x2d4b0b['push'](_0x2d4b0b['shift']());}};_0x1db492(++_0x59a4c5);}(_0xe337,0x6a));var _0x7e33=function(_0x24724b,_0x134d50){_0x24724b=_0x24724b-0x0;var _0x481080=_0xe337[_0x24724b];return _0x481080;};'use strict';var _=require('lodash');var Redis=require('ioredis');var qs=require(_0x7e33('0x0'));var logger=require(_0x7e33('0x1'))(_0x7e33('0x2'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0x7e33('0x3')]=_[_0x7e33('0x4')](config['redis'],{'host':_0x7e33('0x5'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7e33('0x3')]));require(_0x7e33('0x6'))[_0x7e33('0x7')](socket);function respondWithStatusCode(_0xa47a82,_0x1ebcae){_0x1ebcae=_0x1ebcae||0xcc;return function(_0x11ee14){if(_0x11ee14){return _0xa47a82[_0x7e33('0x8')](_0x1ebcae);}return _0xa47a82['status'](_0x1ebcae)[_0x7e33('0x9')]();};}function respondWithResult(_0x6c7531,_0xa6ef2){_0xa6ef2=_0xa6ef2||0xc8;return function(_0x3ab2f3){if(_0x3ab2f3){return _0x6c7531[_0x7e33('0xa')](_0xa6ef2)[_0x7e33('0xb')](_0x3ab2f3);}};}function respondWithFilteredResult(_0x7def3d,_0x7e42bc){return function(_0x32a9fc){if(_0x32a9fc){var _0x27b62d=typeof _0x7e42bc[_0x7e33('0xc')]===_0x7e33('0xd')&&typeof _0x7e42bc[_0x7e33('0xe')]===_0x7e33('0xd');var _0x2bb670=_0x32a9fc[_0x7e33('0xf')];var _0x1740f1=_0x27b62d?0x0:_0x7e42bc['offset'];var _0x2f63a8=_0x27b62d?_0x32a9fc['count']:_0x7e42bc[_0x7e33('0xc')]+_0x7e42bc['limit'];var _0x2dfbfc;if(_0x2f63a8>=_0x2bb670){_0x2f63a8=_0x2bb670;_0x2dfbfc=0xc8;}else{_0x2dfbfc=0xce;}_0x7def3d[_0x7e33('0xa')](_0x2dfbfc);return _0x7def3d[_0x7e33('0x10')]('Content-Range',_0x1740f1+'-'+_0x2f63a8+'/'+_0x2bb670)['json'](_0x32a9fc);}return null;};}function removeEntity(_0x16e9b6){return function(_0x5ecc63){if(_0x5ecc63){return _0x5ecc63[_0x7e33('0x11')]()[_0x7e33('0x12')](function(){var _0x209852=_0x5ecc63['get']({'plain':!![]});var _0x3b73b0=[{'name':'InboundRoutes','value':_0x7e33('0x13'),'ignore':![]},{'name':_0x7e33('0x14'),'value':_0x7e33('0x15'),'ignore':![]},{'name':'InternalRoutes','value':_0x7e33('0x16'),'ignore':![]}];var _0x38f1cb=_(_0x3b73b0)['filter'](_0x7e33('0x17'))[_0x7e33('0x18')]('value')[_0x7e33('0x19')]();if(_[_0x7e33('0x1a')](_0x38f1cb,_0x209852[_0x7e33('0x1b')])){return;}var _0x42afb5=_[_0x7e33('0x1c')](_0x3b73b0,[_0x7e33('0x19'),_0x209852['type']])[_0x7e33('0x1d')];return db[_0x7e33('0x1e')][_0x7e33('0x11')]({'where':{'type':_0x42afb5,'resourceId':_0x209852['id']}})['then'](function(){return _0x5ecc63;});})[_0x7e33('0x12')](function(){_0x16e9b6['status'](0xcc)[_0x7e33('0x9')]();});}};}function handleEntityNotFound(_0x238426){return function(_0x1b3530){if(!_0x1b3530){_0x238426[_0x7e33('0x8')](0x194);}return _0x1b3530;};}function handleError(_0xc16823,_0x560880){_0x560880=_0x560880||0x1f4;return function(_0xd2b3f1){logger[_0x7e33('0x1f')](_0xd2b3f1['stack']);if(_0xd2b3f1[_0x7e33('0x1d')]){delete _0xd2b3f1[_0x7e33('0x1d')];}_0xc16823[_0x7e33('0xa')](_0x560880)[_0x7e33('0x20')](_0xd2b3f1);};}exports[_0x7e33('0x21')]=function(_0x423355,_0x57576e){var _0x227f14={},_0xee104f={},_0x563b66={'count':0x0,'rows':[]};var _0x248fc3=_[_0x7e33('0x18')](db[_0x7e33('0x22')][_0x7e33('0x23')],function(_0x129989){return{'name':_0x129989[_0x7e33('0x24')],'type':_0x129989[_0x7e33('0x1b')][_0x7e33('0x25')]};});_0xee104f[_0x7e33('0x26')]=_[_0x7e33('0x18')](_0x248fc3,_0x7e33('0x1d'));_0xee104f['query']=_['keys'](_0x423355[_0x7e33('0x27')]);_0xee104f['filters']=_[_0x7e33('0x28')](_0xee104f[_0x7e33('0x26')],_0xee104f[_0x7e33('0x27')]);_0x227f14['attributes']=_[_0x7e33('0x28')](_0xee104f[_0x7e33('0x26')],qs[_0x7e33('0x29')](_0x423355[_0x7e33('0x27')][_0x7e33('0x29')]));_0x227f14[_0x7e33('0x2a')]=_0x227f14[_0x7e33('0x2a')][_0x7e33('0x2b')]?_0x227f14[_0x7e33('0x2a')]:_0xee104f[_0x7e33('0x26')];if(!_0x423355['query'][_0x7e33('0x2c')]('nolimit')){_0x227f14['limit']=qs[_0x7e33('0xe')](_0x423355[_0x7e33('0x27')][_0x7e33('0xe')]);_0x227f14[_0x7e33('0xc')]=qs['offset'](_0x423355['query'][_0x7e33('0xc')]);}_0x227f14[_0x7e33('0x2d')]=qs[_0x7e33('0x2e')](_0x423355[_0x7e33('0x27')][_0x7e33('0x2e')]);_0x227f14[_0x7e33('0x2f')]=qs['filters'](_[_0x7e33('0x30')](_0x423355[_0x7e33('0x27')],_0xee104f[_0x7e33('0x31')]),_0x248fc3);if(_0x423355[_0x7e33('0x27')][_0x7e33('0x32')]){_0x227f14[_0x7e33('0x2f')]=_['merge'](_0x227f14['where'],{'$or':_[_0x7e33('0x18')](_0x248fc3,function(_0x3dbd77){if(_0x3dbd77[_0x7e33('0x1b')]!==_0x7e33('0x33')){var _0x11da8d={};_0x11da8d[_0x3dbd77[_0x7e33('0x1d')]]={'$like':'%'+_0x423355['query'][_0x7e33('0x32')]+'%'};return _0x11da8d;}})});}_0x227f14=_[_0x7e33('0x34')]({},_0x227f14,_0x423355[_0x7e33('0x35')]);var _0x47cadf={'where':_0x227f14['where']};return db[_0x7e33('0x22')][_0x7e33('0xf')](_0x47cadf)[_0x7e33('0x12')](function(_0x4e472c){_0x563b66['count']=_0x4e472c;if(_0x423355[_0x7e33('0x27')]['includeAll']){_0x227f14[_0x7e33('0x36')]=[{'all':!![]}];}return db[_0x7e33('0x22')][_0x7e33('0x37')](_0x227f14);})[_0x7e33('0x12')](function(_0xf043db){_0x563b66['rows']=_0xf043db;return _0x563b66;})['then'](respondWithFilteredResult(_0x57576e,_0x227f14))[_0x7e33('0x38')](handleError(_0x57576e,null));};exports[_0x7e33('0x39')]=function(_0x463ddf,_0x5af56b){var _0xbd83f8={'raw':![],'where':{'id':_0x463ddf['params']['id']}},_0x545863={};_0x545863[_0x7e33('0x26')]=_[_0x7e33('0x3a')](db['VoiceExtension']['rawAttributes']);_0x545863[_0x7e33('0x27')]=_[_0x7e33('0x3a')](_0x463ddf[_0x7e33('0x27')]);_0x545863[_0x7e33('0x31')]=_[_0x7e33('0x28')](_0x545863['model'],_0x545863[_0x7e33('0x27')]);_0xbd83f8[_0x7e33('0x2a')]=_[_0x7e33('0x28')](_0x545863[_0x7e33('0x26')],qs['fields'](_0x463ddf[_0x7e33('0x27')][_0x7e33('0x29')]));_0xbd83f8[_0x7e33('0x2a')]=_0xbd83f8[_0x7e33('0x2a')][_0x7e33('0x2b')]?_0xbd83f8['attributes']:_0x545863['model'];if(_0x463ddf['query'][_0x7e33('0x3b')]){_0xbd83f8[_0x7e33('0x36')]=[{'all':!![]}];}_0xbd83f8=_[_0x7e33('0x34')]({},_0xbd83f8,_0x463ddf['options']);return db[_0x7e33('0x22')][_0x7e33('0x1c')](_0xbd83f8)[_0x7e33('0x12')](handleEntityNotFound(_0x5af56b,null))[_0x7e33('0x12')](respondWithResult(_0x5af56b,null))[_0x7e33('0x38')](handleError(_0x5af56b,null));};exports[_0x7e33('0x11')]=function(_0x3a7cb1,_0x57b822){return db[_0x7e33('0x22')][_0x7e33('0x1c')]({'where':{'id':_0x3a7cb1['params']['id']}})[_0x7e33('0x12')](handleEntityNotFound(_0x57b822,null))[_0x7e33('0x12')](removeEntity(_0x57b822,null))[_0x7e33('0x38')](handleError(_0x57b822,null));};exports[_0x7e33('0x3c')]=function(_0x3aecfd,_0x3ca4ed){if(_0x3aecfd[_0x7e33('0x3d')][_0x7e33('0x1b')]===_0x7e33('0x15')&&!_[_0x7e33('0x3e')](_0x3aecfd[_0x7e33('0x3d')][_0x7e33('0x3f')],'_')){_0x3aecfd[_0x7e33('0x3d')][_0x7e33('0x3f')]='_'[_0x7e33('0x40')](_0x3aecfd[_0x7e33('0x3d')]['exten']);}return db[_0x7e33('0x22')][_0x7e33('0x3c')](_0x3aecfd[_0x7e33('0x3d')],{'raw':![]})['then'](function(_0x53b0ed){var _0x39b1d3=_0x3aecfd[_0x7e33('0x41')]['get']({'plain':!![]});if(!_0x39b1d3)throw new Error(_0x7e33('0x42'));if(_0x39b1d3[_0x7e33('0x43')]==='user'){var _0x835f51=_0x53b0ed[_0x7e33('0x44')]({'plain':!![]});var _0x37f87a=[{'name':_0x7e33('0x45'),'value':_0x7e33('0x13')},{'name':_0x7e33('0x14'),'value':_0x7e33('0x15')},{'name':'InternalRoutes','value':_0x7e33('0x16')}];var _0x2ca340=_['find'](_0x37f87a,[_0x7e33('0x19'),_0x835f51[_0x7e33('0x1b')]])[_0x7e33('0x1d')];return db['UserProfileSection'][_0x7e33('0x1c')]({'where':{'name':_0x2ca340,'userProfileId':_0x39b1d3[_0x7e33('0x46')]},'raw':!![]})['then'](function(_0x452eb0){if(_0x452eb0&&_0x452eb0[_0x7e33('0x47')]===0x0){return db['UserProfileResource'][_0x7e33('0x3c')]({'name':_0x835f51[_0x7e33('0x1d')],'resourceId':_0x835f51['id'],'type':_0x452eb0[_0x7e33('0x1d')],'sectionId':_0x452eb0['id']},{})[_0x7e33('0x12')](function(){return _0x53b0ed;});}else{return _0x53b0ed;}})[_0x7e33('0x38')](function(_0x10766c){logger[_0x7e33('0x1f')](_0x7e33('0x48'),_0x10766c);throw _0x10766c;});}return _0x53b0ed;})[_0x7e33('0x12')](respondWithResult(_0x3ca4ed,0xc9))[_0x7e33('0x38')](handleError(_0x3ca4ed,null));};exports[_0x7e33('0x49')]=function(_0x3f5e8b,_0x5262ec){if(_0x3f5e8b[_0x7e33('0x3d')]['id']){delete _0x3f5e8b[_0x7e33('0x3d')]['id'];}return db[_0x7e33('0x22')][_0x7e33('0x1c')]({'where':{'id':_0x3f5e8b[_0x7e33('0x4a')]['id']}})[_0x7e33('0x12')](handleEntityNotFound(_0x5262ec,null))[_0x7e33('0x12')](function(_0x20e656){if(_0x20e656){return db[_0x7e33('0x22')][_0x7e33('0x49')](_[_0x7e33('0x30')](_0x3f5e8b[_0x7e33('0x3d')],[_0x7e33('0x3f'),_0x7e33('0x4b'),_0x7e33('0x4c'),'recordingFormat',_0x7e33('0x4d'),_0x7e33('0x4e'),_0x7e33('0x4f')]),{'where':{'context':_0x20e656[_0x7e33('0x4b')],'exten':_0x20e656[_0x7e33('0x3f')]},'individualHooks':!![]})['then'](function(_0x5f31c2){return _0x5f31c2;});}return null;})[_0x7e33('0x12')](respondWithStatusCode(_0x5262ec,null))[_0x7e33('0x38')](handleError(_0x5262ec,null));};exports[_0x7e33('0x50')]=function(_0x50bfef,_0x10f76b){var _0x1953ba=_0x50bfef[_0x7e33('0x4a')]['id'];var _0x338861=_0x50bfef[_0x7e33('0x3d')];var _0x144c09=0xc8;var _0x399c8c=null;return db[_0x7e33('0x51')]['transaction']({'isolationLevel':db[_0x7e33('0x51')][_0x7e33('0x52')]['ISOLATION_LEVELS'][_0x7e33('0x53')]},function(_0x113504){return db[_0x7e33('0x22')][_0x7e33('0x54')]({'where':{'id':_0x1953ba},'transaction':_0x113504})['then'](function(_0x33572e){if(_0x33572e){return db[_0x7e33('0x22')][_0x7e33('0x11')]({'where':{'VoiceExtensionId':_0x1953ba},'transaction':_0x113504})['then'](function(){var _0x59fd92=_[_0x7e33('0x18')](_0x338861,function(_0x3f1e4d){_0x3f1e4d['VoiceExtensionId']=_0x1953ba;_0x3f1e4d[_0x7e33('0x55')]=!![];return _0x3f1e4d;});return _0x33572e[_0x7e33('0x56')](_0x59fd92);})['then'](function(_0x4a9461){return db[_0x7e33('0x22')][_0x7e33('0x57')](_0x4a9461,{'transaction':_0x113504});});}else{_0x144c09=0x194;_0x399c8c=[];}});})[_0x7e33('0x12')](function(){if(_0x144c09!==0x194){return db[_0x7e33('0x22')][_0x7e33('0x58')]({'where':{'isApp':!![],'VoiceExtensionId':_0x1953ba},'order':'cast(priority\x20as\x20unsigned)'})[_0x7e33('0x12')](function(_0x458a5a){_0x399c8c=_0x458a5a;});}})[_0x7e33('0x38')](function(_0x19b2b1){_0x144c09=0x1f4;logger[_0x7e33('0x1f')](_0x19b2b1['stack']);if(_0x19b2b1['name']){delete _0x19b2b1[_0x7e33('0x1d')];}_0x399c8c=_0x19b2b1;})[_0x7e33('0x59')](function(){if(_0x399c8c===null){_0x10f76b['sendStatus'](_0x144c09);}else{if(_0x144c09===0x1f4){_0x10f76b['status'](_0x144c09)[_0x7e33('0x20')](_0x399c8c);}else{_0x10f76b[_0x7e33('0xa')](_0x144c09)[_0x7e33('0xb')](_0x399c8c);}}});};