Built motion from commit (unavailable).|2.5.2
[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 _0x1a85=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','end','status','json','count','offset','limit','set','Content-Range','save','then','destroy','get','InboundRoutes','inbound','OutboundRoutes','InternalRoutes','internal','filter','ignore','map','value','includes','type','find','UserProfileResource','stack','name','send','VoiceExtension','rawAttributes','fieldName','keys','filters','intersection','model','query','attributes','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','fields','params','create','body','outbound','startsWith','exten','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','mandatoryDisposition','addApplications','VoiceExtensionId','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','ejs','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x3d9813,_0x1a02ec){var _0x4089f2=function(_0x535018){while(--_0x535018){_0x3d9813['push'](_0x3d9813['shift']());}};_0x4089f2(++_0x1a02ec);}(_0x1a85,0x178));var _0x51a8=function(_0x5e06c3,_0x154aa1){_0x5e06c3=_0x5e06c3-0x0;var _0xd287dd=_0x1a85[_0x5e06c3];return _0xd287dd;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x51a8('0x0'));var zipdir=require(_0x51a8('0x1'));var jsonpatch=require(_0x51a8('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x51a8('0x3'));var Mustache=require(_0x51a8('0x4'));var util=require(_0x51a8('0x5'));var path=require('path');var sox=require(_0x51a8('0x6'));var csv=require('to-csv');var ejs=require(_0x51a8('0x7'));var fs=require('fs');var _=require('lodash');var squel=require(_0x51a8('0x8'));var crypto=require(_0x51a8('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x51a8('0xa'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x51a8('0xb'));var Redis=require(_0x51a8('0xc'));var authService=require(_0x51a8('0xd'));var qs=require(_0x51a8('0xe'));var as=require(_0x51a8('0xf'));var hardwareService=require(_0x51a8('0x10'));var logger=require(_0x51a8('0x11'))(_0x51a8('0x12'));var utils=require(_0x51a8('0x13'));var config=require(_0x51a8('0x14'));var db=require(_0x51a8('0x15'))['db'];config[_0x51a8('0x16')]=_[_0x51a8('0x17')](config[_0x51a8('0x16')],{'host':_0x51a8('0x18'),'port':0x18eb});var socket=require(_0x51a8('0x19'))(new Redis(config[_0x51a8('0x16')]));require('./voiceExtension.socket')[_0x51a8('0x1a')](socket);function respondWithStatusCode(_0x7a4c36,_0xaec066){_0xaec066=_0xaec066||0xcc;return function(_0x50d992){if(_0x50d992){return _0x7a4c36[_0x51a8('0x1b')](_0xaec066);}return _0x7a4c36['status'](_0xaec066)[_0x51a8('0x1c')]();};}function respondWithResult(_0x2b8d37,_0x39cd45){_0x39cd45=_0x39cd45||0xc8;return function(_0x2b0521){if(_0x2b0521){return _0x2b8d37[_0x51a8('0x1d')](_0x39cd45)[_0x51a8('0x1e')](_0x2b0521);}};}function respondWithFilteredResult(_0x1f49ee,_0x516abc){return function(_0x1c2f25){if(_0x1c2f25){var _0x45a433=_0x1c2f25[_0x51a8('0x1f')],_0xd52230=_0x516abc['offset'],_0x23539e=_0x516abc[_0x51a8('0x20')]+_0x516abc[_0x51a8('0x21')],_0x3bc1a2;if(_0x23539e>=_0x45a433){_0x23539e=_0x45a433;_0x3bc1a2=0xc8;}else{_0x3bc1a2=0xce;}_0x1f49ee[_0x51a8('0x1d')](_0x3bc1a2);return _0x1f49ee[_0x51a8('0x22')](_0x51a8('0x23'),_0xd52230+'-'+_0x23539e+'/'+_0x45a433)[_0x51a8('0x1e')](_0x1c2f25);}return null;};}function patchUpdates(_0x28aea0){return function(_0x3bf5b6){try{jsonpatch['apply'](_0x3bf5b6,_0x28aea0,!![]);}catch(_0xf80fa9){return BPromise['reject'](_0xf80fa9);}return _0x3bf5b6[_0x51a8('0x24')]();};}function saveUpdates(_0x12c029,_0x8bda40){return function(_0x3759d6){if(_0x3759d6){return _0x3759d6['update'](_0x12c029)[_0x51a8('0x25')](function(_0x4b9cdd){return _0x4b9cdd;});}return null;};}function removeEntity(_0x47f063,_0x23d26a){return function(_0x52e503){if(_0x52e503){return _0x52e503[_0x51a8('0x26')]()[_0x51a8('0x25')](function(){var _0x20ef8b=_0x52e503[_0x51a8('0x27')]({'plain':!![]});var _0x157554=[{'name':_0x51a8('0x28'),'value':_0x51a8('0x29'),'ignore':![]},{'name':_0x51a8('0x2a'),'value':'outbound','ignore':![]},{'name':_0x51a8('0x2b'),'value':_0x51a8('0x2c'),'ignore':![]}];var _0xca5746=_(_0x157554)[_0x51a8('0x2d')](_0x51a8('0x2e'))[_0x51a8('0x2f')](_0x51a8('0x30'))[_0x51a8('0x30')]();if(_[_0x51a8('0x31')](_0xca5746,_0x20ef8b[_0x51a8('0x32')])){return;}var _0x20c6b5=_[_0x51a8('0x33')](_0x157554,['value',_0x20ef8b[_0x51a8('0x32')]])['name'];return db[_0x51a8('0x34')][_0x51a8('0x26')]({'where':{'type':_0x20c6b5,'resourceId':_0x20ef8b['id']}})[_0x51a8('0x25')](function(){return _0x52e503;});})[_0x51a8('0x25')](function(){_0x47f063[_0x51a8('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x10c19b,_0x4c67ff){return function(_0x41c4de){if(!_0x41c4de){_0x10c19b[_0x51a8('0x1b')](0x194);}return _0x41c4de;};}function handleError(_0x253a59,_0x4b19c8){_0x4b19c8=_0x4b19c8||0x1f4;return function(_0x2080a1){logger['error'](_0x2080a1[_0x51a8('0x35')]);if(_0x2080a1[_0x51a8('0x36')]){delete _0x2080a1[_0x51a8('0x36')];}_0x253a59[_0x51a8('0x1d')](_0x4b19c8)[_0x51a8('0x37')](_0x2080a1);};}exports['index']=function(_0x1167b8,_0x53b3b6){var _0x9f0e6={},_0x2d977b={},_0x41561a={'count':0x0,'rows':[]};var _0x578fc6=_[_0x51a8('0x2f')](db[_0x51a8('0x38')][_0x51a8('0x39')],function(_0x2429f8){return{'name':_0x2429f8[_0x51a8('0x3a')],'type':_0x2429f8['type']['key']};});_0x2d977b['model']=_[_0x51a8('0x2f')](_0x578fc6,_0x51a8('0x36'));_0x2d977b['query']=_[_0x51a8('0x3b')](_0x1167b8['query']);_0x2d977b[_0x51a8('0x3c')]=_[_0x51a8('0x3d')](_0x2d977b[_0x51a8('0x3e')],_0x2d977b[_0x51a8('0x3f')]);_0x9f0e6[_0x51a8('0x40')]=_[_0x51a8('0x3d')](_0x2d977b['model'],qs['fields'](_0x1167b8[_0x51a8('0x3f')]['fields']));_0x9f0e6['attributes']=_0x9f0e6['attributes'][_0x51a8('0x41')]?_0x9f0e6[_0x51a8('0x40')]:_0x2d977b[_0x51a8('0x3e')];if(!_0x1167b8['query'][_0x51a8('0x42')](_0x51a8('0x43'))){_0x9f0e6[_0x51a8('0x21')]=qs[_0x51a8('0x21')](_0x1167b8['query'][_0x51a8('0x21')]);_0x9f0e6[_0x51a8('0x20')]=qs[_0x51a8('0x20')](_0x1167b8['query'][_0x51a8('0x20')]);}_0x9f0e6['order']=qs[_0x51a8('0x44')](_0x1167b8[_0x51a8('0x3f')][_0x51a8('0x44')]);_0x9f0e6[_0x51a8('0x45')]=qs['filters'](_[_0x51a8('0x46')](_0x1167b8[_0x51a8('0x3f')],_0x2d977b[_0x51a8('0x3c')]),_0x578fc6);if(_0x1167b8[_0x51a8('0x3f')][_0x51a8('0x2d')]){_0x9f0e6[_0x51a8('0x45')]=_[_0x51a8('0x47')](_0x9f0e6[_0x51a8('0x45')],{'$or':_[_0x51a8('0x2f')](_0x578fc6,function(_0x4b8467){if(_0x4b8467[_0x51a8('0x32')]!==_0x51a8('0x48')){var _0x4c7c67={};_0x4c7c67[_0x4b8467['name']]={'$like':'%'+_0x1167b8[_0x51a8('0x3f')][_0x51a8('0x2d')]+'%'};return _0x4c7c67;}})});}_0x9f0e6=_[_0x51a8('0x47')]({},_0x9f0e6,_0x1167b8[_0x51a8('0x49')]);var _0x311574={'where':_0x9f0e6[_0x51a8('0x45')]};return db[_0x51a8('0x38')][_0x51a8('0x1f')](_0x311574)[_0x51a8('0x25')](function(_0x2e80ed){_0x41561a['count']=_0x2e80ed;if(_0x1167b8[_0x51a8('0x3f')][_0x51a8('0x4a')]){_0x9f0e6[_0x51a8('0x4b')]=[{'all':!![]}];}return db[_0x51a8('0x38')][_0x51a8('0x4c')](_0x9f0e6);})[_0x51a8('0x25')](function(_0x579411){_0x41561a[_0x51a8('0x4d')]=_0x579411;return _0x41561a;})['then'](respondWithFilteredResult(_0x53b3b6,_0x9f0e6))[_0x51a8('0x4e')](handleError(_0x53b3b6,null));};exports[_0x51a8('0x4f')]=function(_0xa5d597,_0xc856d1){var _0x246b72={'raw':![],'where':{'id':_0xa5d597['params']['id']}},_0x56d002={};_0x56d002[_0x51a8('0x3e')]=_[_0x51a8('0x3b')](db[_0x51a8('0x38')][_0x51a8('0x39')]);_0x56d002[_0x51a8('0x3f')]=_['keys'](_0xa5d597['query']);_0x56d002[_0x51a8('0x3c')]=_[_0x51a8('0x3d')](_0x56d002[_0x51a8('0x3e')],_0x56d002[_0x51a8('0x3f')]);_0x246b72[_0x51a8('0x40')]=_[_0x51a8('0x3d')](_0x56d002[_0x51a8('0x3e')],qs[_0x51a8('0x50')](_0xa5d597[_0x51a8('0x3f')]['fields']));_0x246b72['attributes']=_0x246b72['attributes'][_0x51a8('0x41')]?_0x246b72[_0x51a8('0x40')]:_0x56d002[_0x51a8('0x3e')];if(_0xa5d597['query'][_0x51a8('0x4a')]){_0x246b72[_0x51a8('0x4b')]=[{'all':!![]}];}_0x246b72=_['merge']({},_0x246b72,_0xa5d597[_0x51a8('0x49')]);return db['VoiceExtension']['find'](_0x246b72)[_0x51a8('0x25')](handleEntityNotFound(_0xc856d1,null))[_0x51a8('0x25')](respondWithResult(_0xc856d1,null))[_0x51a8('0x4e')](handleError(_0xc856d1,null));};exports['destroy']=function(_0x5b5aa5,_0x3a8f1e){return db['VoiceExtension'][_0x51a8('0x33')]({'where':{'id':_0x5b5aa5[_0x51a8('0x51')]['id']}})[_0x51a8('0x25')](handleEntityNotFound(_0x3a8f1e,null))[_0x51a8('0x25')](removeEntity(_0x3a8f1e,null))[_0x51a8('0x4e')](handleError(_0x3a8f1e,null));};exports[_0x51a8('0x52')]=function(_0x2a87e2,_0x406a87){if(_0x2a87e2[_0x51a8('0x53')]['type']===_0x51a8('0x54')&&!_[_0x51a8('0x55')](_0x2a87e2[_0x51a8('0x53')][_0x51a8('0x56')],'_')){_0x2a87e2['body'][_0x51a8('0x56')]='_'['concat'](_0x2a87e2[_0x51a8('0x53')][_0x51a8('0x56')]);}return db['VoiceExtension']['create'](_0x2a87e2[_0x51a8('0x53')],{'raw':![]})[_0x51a8('0x25')](function(_0x165366){var _0x1aaeaf=_0x2a87e2[_0x51a8('0x57')]['get']({'plain':!![]});if(!_0x1aaeaf)throw new Error(_0x51a8('0x58'));if(_0x1aaeaf[_0x51a8('0x59')]===_0x51a8('0x57')){var _0x308d40=_0x165366[_0x51a8('0x27')]({'plain':!![]});var _0x5d44fe=[{'name':_0x51a8('0x28'),'value':_0x51a8('0x29')},{'name':_0x51a8('0x2a'),'value':_0x51a8('0x54')},{'name':_0x51a8('0x2b'),'value':_0x51a8('0x2c')}];var _0x4d2699=_['find'](_0x5d44fe,['value',_0x308d40['type']])[_0x51a8('0x36')];return db[_0x51a8('0x5a')]['find']({'where':{'name':_0x4d2699,'userProfileId':_0x1aaeaf[_0x51a8('0x5b')]},'raw':!![]})['then'](function(_0x41cc00){if(_0x41cc00&&_0x41cc00['autoAssociation']===0x0){return db[_0x51a8('0x34')][_0x51a8('0x52')]({'name':_0x308d40['name'],'resourceId':_0x308d40['id'],'type':_0x41cc00['name'],'sectionId':_0x41cc00['id']},{})['then'](function(){return _0x165366;});}else{return _0x165366;}})[_0x51a8('0x4e')](function(_0x1ead77){logger[_0x51a8('0x5c')](_0x51a8('0x5d'),_0x1ead77);throw _0x1ead77;});}return _0x165366;})[_0x51a8('0x25')](respondWithResult(_0x406a87,0xc9))[_0x51a8('0x4e')](handleError(_0x406a87,null));};exports[_0x51a8('0x5e')]=function(_0x259153,_0x494e11){if(_0x259153[_0x51a8('0x53')]['id']){delete _0x259153[_0x51a8('0x53')]['id'];}return db['VoiceExtension'][_0x51a8('0x33')]({'where':{'id':_0x259153[_0x51a8('0x51')]['id']}})[_0x51a8('0x25')](handleEntityNotFound(_0x494e11,null))[_0x51a8('0x25')](function(_0x2e1250){if(_0x2e1250){return db[_0x51a8('0x38')]['update'](_['pick'](_0x259153[_0x51a8('0x53')],['exten','context','description','recordingFormat','cutdigits',_0x51a8('0x5f')]),{'where':{'context':_0x2e1250['context'],'exten':_0x2e1250[_0x51a8('0x56')]},'individualHooks':!![]})[_0x51a8('0x25')](function(_0x1e7135){return _0x1e7135;});}return null;})[_0x51a8('0x25')](respondWithStatusCode(_0x494e11,null))[_0x51a8('0x4e')](handleError(_0x494e11,null));};exports[_0x51a8('0x60')]=function(_0x28c539,_0xdafa01,_0x4b4740){return db[_0x51a8('0x38')]['findOne']({'where':{'id':_0x28c539[_0x51a8('0x51')]['id']}})[_0x51a8('0x25')](handleEntityNotFound(_0xdafa01,null))[_0x51a8('0x25')](function(_0x522677){if(_0x522677){return db['sequelize']['transaction'](function(_0x10c22e){return db[_0x51a8('0x38')][_0x51a8('0x26')]({'where':{'VoiceExtensionId':_0x28c539[_0x51a8('0x51')]['id']},'transaction':_0x10c22e})[_0x51a8('0x25')](function(_0x1462b4){var _0x351c22=_[_0x51a8('0x2f')](_0x28c539[_0x51a8('0x53')],function(_0x462555){_0x462555[_0x51a8('0x61')]=_0x28c539[_0x51a8('0x51')]['id'];return _0x462555;});return db[_0x51a8('0x38')]['bulkCreate'](_0x351c22,{'transaction':_0x10c22e});});})[_0x51a8('0x25')](function(){return db[_0x51a8('0x38')]['findAndCountAll']({'where':{'isApp':!![],'VoiceExtensionId':_0x28c539[_0x51a8('0x51')]['id']},'order':'cast(priority\x20as\x20unsigned)'});});}})['then'](respondWithResult(_0xdafa01,null))['catch'](handleError(_0xdafa01,null));};