Built motion from commit (unavailable).|2.5.21
[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 _0x859e=['json','apply','reject','update','destroy','then','get','OutboundRoutes','outbound','InternalRoutes','internal','filter','ignore','map','value','type','find','name','UserProfileResource','error','send','index','VoiceExtension','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','pick','where','merge','VIRTUAL','options','includeAll','findAll','show','params','include','catch','create','body','startsWith','exten','concat','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','InboundRoutes','inbound','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','recordingFormat','addApplications','findOne','sequelize','transaction','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','ejs','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceExtension.socket','register','sendStatus','status','end','count','offset','limit','Content-Range'];(function(_0x706091,_0x5e07d9){var _0x4aee6f=function(_0xf8d0f6){while(--_0xf8d0f6){_0x706091['push'](_0x706091['shift']());}};_0x4aee6f(++_0x5e07d9);}(_0x859e,0x182));var _0xe859=function(_0x4377b2,_0x5d8d32){_0x4377b2=_0x4377b2-0x0;var _0x4f6528=_0x859e[_0x4377b2];return _0x4f6528;};'use strict';var pdf=require(_0xe859('0x0'));var emlformat=require(_0xe859('0x1'));var rimraf=require(_0xe859('0x2'));var zipdir=require(_0xe859('0x3'));var jsonpatch=require(_0xe859('0x4'));var rp=require(_0xe859('0x5'));var moment=require(_0xe859('0x6'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xe859('0x7'));var path=require(_0xe859('0x8'));var sox=require(_0xe859('0x9'));var csv=require('to-csv');var ejs=require(_0xe859('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0xe859('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xe859('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xe859('0xd'));var Redis=require(_0xe859('0xe'));var authService=require(_0xe859('0xf'));var qs=require(_0xe859('0x10'));var as=require(_0xe859('0x11'));var hardwareService=require(_0xe859('0x12'));var logger=require(_0xe859('0x13'))(_0xe859('0x14'));var utils=require(_0xe859('0x15'));var config=require(_0xe859('0x16'));var licenseUtil=require(_0xe859('0x17'));var db=require(_0xe859('0x18'))['db'];config[_0xe859('0x19')]=_[_0xe859('0x1a')](config[_0xe859('0x19')],{'host':_0xe859('0x1b'),'port':0x18eb});var socket=require(_0xe859('0x1c'))(new Redis(config['redis']));require(_0xe859('0x1d'))[_0xe859('0x1e')](socket);function respondWithStatusCode(_0x45ec61,_0x1c9844){_0x1c9844=_0x1c9844||0xcc;return function(_0x42af5b){if(_0x42af5b){return _0x45ec61[_0xe859('0x1f')](_0x1c9844);}return _0x45ec61[_0xe859('0x20')](_0x1c9844)[_0xe859('0x21')]();};}function respondWithResult(_0x204f84,_0x2e122e){_0x2e122e=_0x2e122e||0xc8;return function(_0x1c703c){if(_0x1c703c){return _0x204f84[_0xe859('0x20')](_0x2e122e)['json'](_0x1c703c);}};}function respondWithFilteredResult(_0x13a9d1,_0x11d3be){return function(_0x5d73bc){if(_0x5d73bc){var _0x5f2f49=_0x5d73bc[_0xe859('0x22')],_0xc8f663=_0x11d3be[_0xe859('0x23')],_0x388542=_0x11d3be[_0xe859('0x23')]+_0x11d3be[_0xe859('0x24')],_0x57b9ec;if(_0x388542>=_0x5f2f49){_0x388542=_0x5f2f49;_0x57b9ec=0xc8;}else{_0x57b9ec=0xce;}_0x13a9d1[_0xe859('0x20')](_0x57b9ec);return _0x13a9d1['set'](_0xe859('0x25'),_0xc8f663+'-'+_0x388542+'/'+_0x5f2f49)[_0xe859('0x26')](_0x5d73bc);}return null;};}function patchUpdates(_0x2faa8e){return function(_0x4d7477){try{jsonpatch[_0xe859('0x27')](_0x4d7477,_0x2faa8e,!![]);}catch(_0x431b88){return BPromise[_0xe859('0x28')](_0x431b88);}return _0x4d7477['save']();};}function saveUpdates(_0x5eceb1,_0x2ad5cd){return function(_0x4a5492){if(_0x4a5492){return _0x4a5492[_0xe859('0x29')](_0x5eceb1)['then'](function(_0x5469d3){return _0x5469d3;});}return null;};}function removeEntity(_0x403710,_0x5bd7e1){return function(_0x42806d){if(_0x42806d){return _0x42806d[_0xe859('0x2a')]()[_0xe859('0x2b')](function(){var _0x3dc120=_0x42806d[_0xe859('0x2c')]({'plain':!![]});var _0x4e7c46=[{'name':'InboundRoutes','value':'inbound','ignore':![]},{'name':_0xe859('0x2d'),'value':_0xe859('0x2e'),'ignore':![]},{'name':_0xe859('0x2f'),'value':_0xe859('0x30'),'ignore':![]}];var _0x3ffd1d=_(_0x4e7c46)[_0xe859('0x31')](_0xe859('0x32'))[_0xe859('0x33')](_0xe859('0x34'))[_0xe859('0x34')]();if(_['includes'](_0x3ffd1d,_0x3dc120[_0xe859('0x35')])){return;}var _0x77a140=_[_0xe859('0x36')](_0x4e7c46,['value',_0x3dc120['type']])[_0xe859('0x37')];return db[_0xe859('0x38')][_0xe859('0x2a')]({'where':{'type':_0x77a140,'resourceId':_0x3dc120['id']}})[_0xe859('0x2b')](function(){return _0x42806d;});})[_0xe859('0x2b')](function(){_0x403710[_0xe859('0x20')](0xcc)[_0xe859('0x21')]();});}};}function handleEntityNotFound(_0x3646b6,_0x3f8e49){return function(_0x1c25bd){if(!_0x1c25bd){_0x3646b6[_0xe859('0x1f')](0x194);}return _0x1c25bd;};}function handleError(_0x46f8c5,_0x5e4143){_0x5e4143=_0x5e4143||0x1f4;return function(_0x350a93){logger[_0xe859('0x39')](_0x350a93['stack']);if(_0x350a93['name']){delete _0x350a93[_0xe859('0x37')];}_0x46f8c5[_0xe859('0x20')](_0x5e4143)[_0xe859('0x3a')](_0x350a93);};}exports[_0xe859('0x3b')]=function(_0x5c90f6,_0x5aa3d0){var _0x4d6d14={},_0x5dc1f6={},_0x1e6613={'count':0x0,'rows':[]};var _0x8720e7=_['map'](db[_0xe859('0x3c')][_0xe859('0x3d')],function(_0x7e6ecb){return{'name':_0x7e6ecb[_0xe859('0x3e')],'type':_0x7e6ecb[_0xe859('0x35')][_0xe859('0x3f')]};});_0x5dc1f6[_0xe859('0x40')]=_[_0xe859('0x33')](_0x8720e7,_0xe859('0x37'));_0x5dc1f6[_0xe859('0x41')]=_[_0xe859('0x42')](_0x5c90f6[_0xe859('0x41')]);_0x5dc1f6[_0xe859('0x43')]=_[_0xe859('0x44')](_0x5dc1f6['model'],_0x5dc1f6[_0xe859('0x41')]);_0x4d6d14['attributes']=_['intersection'](_0x5dc1f6['model'],qs['fields'](_0x5c90f6[_0xe859('0x41')][_0xe859('0x45')]));_0x4d6d14[_0xe859('0x46')]=_0x4d6d14[_0xe859('0x46')][_0xe859('0x47')]?_0x4d6d14[_0xe859('0x46')]:_0x5dc1f6[_0xe859('0x40')];if(!_0x5c90f6[_0xe859('0x41')][_0xe859('0x48')](_0xe859('0x49'))){_0x4d6d14['limit']=qs[_0xe859('0x24')](_0x5c90f6[_0xe859('0x41')]['limit']);_0x4d6d14[_0xe859('0x23')]=qs[_0xe859('0x23')](_0x5c90f6['query'][_0xe859('0x23')]);}_0x4d6d14['order']=qs['sort'](_0x5c90f6[_0xe859('0x41')][_0xe859('0x4a')]);_0x4d6d14['where']=qs[_0xe859('0x43')](_[_0xe859('0x4b')](_0x5c90f6[_0xe859('0x41')],_0x5dc1f6[_0xe859('0x43')]),_0x8720e7);if(_0x5c90f6['query']['filter']){_0x4d6d14[_0xe859('0x4c')]=_[_0xe859('0x4d')](_0x4d6d14[_0xe859('0x4c')],{'$or':_[_0xe859('0x33')](_0x8720e7,function(_0x21214a){if(_0x21214a[_0xe859('0x35')]!==_0xe859('0x4e')){var _0x10ac41={};_0x10ac41[_0x21214a[_0xe859('0x37')]]={'$like':'%'+_0x5c90f6['query'][_0xe859('0x31')]+'%'};return _0x10ac41;}})});}_0x4d6d14=_[_0xe859('0x4d')]({},_0x4d6d14,_0x5c90f6[_0xe859('0x4f')]);var _0x4c0b4d={'where':_0x4d6d14[_0xe859('0x4c')]};return db[_0xe859('0x3c')][_0xe859('0x22')](_0x4c0b4d)[_0xe859('0x2b')](function(_0x3112ec){_0x1e6613[_0xe859('0x22')]=_0x3112ec;if(_0x5c90f6[_0xe859('0x41')][_0xe859('0x50')]){_0x4d6d14['include']=[{'all':!![]}];}return db['VoiceExtension'][_0xe859('0x51')](_0x4d6d14);})[_0xe859('0x2b')](function(_0x181027){_0x1e6613['rows']=_0x181027;return _0x1e6613;})[_0xe859('0x2b')](respondWithFilteredResult(_0x5aa3d0,_0x4d6d14))['catch'](handleError(_0x5aa3d0,null));};exports[_0xe859('0x52')]=function(_0x6ed468,_0x180361){var _0x21d691={'raw':![],'where':{'id':_0x6ed468[_0xe859('0x53')]['id']}},_0x341672={};_0x341672[_0xe859('0x40')]=_[_0xe859('0x42')](db[_0xe859('0x3c')][_0xe859('0x3d')]);_0x341672['query']=_[_0xe859('0x42')](_0x6ed468[_0xe859('0x41')]);_0x341672[_0xe859('0x43')]=_['intersection'](_0x341672[_0xe859('0x40')],_0x341672['query']);_0x21d691['attributes']=_[_0xe859('0x44')](_0x341672[_0xe859('0x40')],qs[_0xe859('0x45')](_0x6ed468['query'][_0xe859('0x45')]));_0x21d691[_0xe859('0x46')]=_0x21d691[_0xe859('0x46')][_0xe859('0x47')]?_0x21d691['attributes']:_0x341672[_0xe859('0x40')];if(_0x6ed468[_0xe859('0x41')][_0xe859('0x50')]){_0x21d691[_0xe859('0x54')]=[{'all':!![]}];}_0x21d691=_['merge']({},_0x21d691,_0x6ed468[_0xe859('0x4f')]);return db['VoiceExtension'][_0xe859('0x36')](_0x21d691)[_0xe859('0x2b')](handleEntityNotFound(_0x180361,null))['then'](respondWithResult(_0x180361,null))[_0xe859('0x55')](handleError(_0x180361,null));};exports[_0xe859('0x2a')]=function(_0x2ea23d,_0x2614b9){return db['VoiceExtension'][_0xe859('0x36')]({'where':{'id':_0x2ea23d[_0xe859('0x53')]['id']}})[_0xe859('0x2b')](handleEntityNotFound(_0x2614b9,null))[_0xe859('0x2b')](removeEntity(_0x2614b9,null))[_0xe859('0x55')](handleError(_0x2614b9,null));};exports[_0xe859('0x56')]=function(_0x2537d9,_0x2311a7){if(_0x2537d9[_0xe859('0x57')][_0xe859('0x35')]===_0xe859('0x2e')&&!_[_0xe859('0x58')](_0x2537d9[_0xe859('0x57')][_0xe859('0x59')],'_')){_0x2537d9['body'][_0xe859('0x59')]='_'[_0xe859('0x5a')](_0x2537d9[_0xe859('0x57')][_0xe859('0x59')]);}return db[_0xe859('0x3c')][_0xe859('0x56')](_0x2537d9[_0xe859('0x57')],{'raw':![]})[_0xe859('0x2b')](function(_0x422082){var _0x16edc7=_0x2537d9[_0xe859('0x5b')][_0xe859('0x2c')]({'plain':!![]});if(!_0x16edc7)throw new Error(_0xe859('0x5c'));if(_0x16edc7[_0xe859('0x5d')]===_0xe859('0x5b')){var _0x5eeba1=_0x422082[_0xe859('0x2c')]({'plain':!![]});var _0xdc9f55=[{'name':_0xe859('0x5e'),'value':_0xe859('0x5f')},{'name':_0xe859('0x2d'),'value':_0xe859('0x2e')},{'name':_0xe859('0x2f'),'value':_0xe859('0x30')}];var _0x44a62d=_[_0xe859('0x36')](_0xdc9f55,[_0xe859('0x34'),_0x5eeba1[_0xe859('0x35')]])[_0xe859('0x37')];return db[_0xe859('0x60')][_0xe859('0x36')]({'where':{'name':_0x44a62d,'userProfileId':_0x16edc7[_0xe859('0x61')]},'raw':!![]})['then'](function(_0x18b846){if(_0x18b846&&_0x18b846[_0xe859('0x62')]===0x0){return db[_0xe859('0x38')][_0xe859('0x56')]({'name':_0x5eeba1[_0xe859('0x37')],'resourceId':_0x5eeba1['id'],'type':_0x18b846[_0xe859('0x37')],'sectionId':_0x18b846['id']},{})[_0xe859('0x2b')](function(){return _0x422082;});}else{return _0x422082;}})[_0xe859('0x55')](function(_0x49947d){logger[_0xe859('0x39')](_0xe859('0x63'),_0x49947d);throw _0x49947d;});}return _0x422082;})[_0xe859('0x2b')](respondWithResult(_0x2311a7,0xc9))[_0xe859('0x55')](handleError(_0x2311a7,null));};exports['update']=function(_0x31da15,_0x17f4a7){if(_0x31da15[_0xe859('0x57')]['id']){delete _0x31da15[_0xe859('0x57')]['id'];}return db[_0xe859('0x3c')]['find']({'where':{'id':_0x31da15[_0xe859('0x53')]['id']}})[_0xe859('0x2b')](handleEntityNotFound(_0x17f4a7,null))[_0xe859('0x2b')](function(_0x4b3b6f){if(_0x4b3b6f){return db[_0xe859('0x3c')][_0xe859('0x29')](_['pick'](_0x31da15[_0xe859('0x57')],['exten',_0xe859('0x64'),'description',_0xe859('0x65'),'cutdigits','mandatoryDisposition']),{'where':{'context':_0x4b3b6f[_0xe859('0x64')],'exten':_0x4b3b6f[_0xe859('0x59')]},'individualHooks':!![]})[_0xe859('0x2b')](function(_0x5d6572){return _0x5d6572;});}return null;})[_0xe859('0x2b')](respondWithStatusCode(_0x17f4a7,null))[_0xe859('0x55')](handleError(_0x17f4a7,null));};exports[_0xe859('0x66')]=function(_0x55235c,_0xe0c6ce,_0x313f06){return db[_0xe859('0x3c')][_0xe859('0x67')]({'where':{'id':_0x55235c['params']['id']}})[_0xe859('0x2b')](handleEntityNotFound(_0xe0c6ce,null))[_0xe859('0x2b')](function(_0x43f068){if(_0x43f068){return db[_0xe859('0x68')][_0xe859('0x69')](function(_0x5168ea){return db[_0xe859('0x3c')][_0xe859('0x2a')]({'where':{'VoiceExtensionId':_0x55235c[_0xe859('0x53')]['id']},'transaction':_0x5168ea})[_0xe859('0x2b')](function(_0x4c536b){var _0x3fb878=_[_0xe859('0x33')](_0x55235c[_0xe859('0x57')],function(_0x43d168){_0x43d168['VoiceExtensionId']=_0x55235c['params']['id'];return _0x43d168;});return db[_0xe859('0x3c')]['bulkCreate'](_0x3fb878,{'transaction':_0x5168ea});});})[_0xe859('0x2b')](function(){return db['VoiceExtension']['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x55235c[_0xe859('0x53')]['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})['then'](respondWithResult(_0xe0c6ce,null))[_0xe859('0x55')](handleError(_0xe0c6ce,null));};