Built motion from commit 538092ac.|2.6.10
[motion2.git] / server / api / schedule / schedule.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 _0x2494=['run','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','to-csv','ejs','fs-extra','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','reject','update','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','send','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','hasOwnProperty','order','sort','where','merge','map','VIRTUAL','options','Schedule','includeAll','findAll','rows','catch','show','params','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x29de04,_0x311161){var _0x93a60e=function(_0x36aa5b){while(--_0x36aa5b){_0x29de04['push'](_0x29de04['shift']());}};_0x93a60e(++_0x311161);}(_0x2494,0xa1));var _0x4249=function(_0x12a563,_0x463166){_0x12a563=_0x12a563-0x0;var _0xb30870=_0x2494[_0x12a563];return _0xb30870;};'use strict';var emlformat=require(_0x4249('0x0'));var rimraf=require(_0x4249('0x1'));var zipdir=require(_0x4249('0x2'));var jsonpatch=require(_0x4249('0x3'));var rp=require('request-promise');var moment=require(_0x4249('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x4249('0x5'));var util=require(_0x4249('0x6'));var path=require('path');var sox=require(_0x4249('0x7'));var csv=require(_0x4249('0x8'));var ejs=require(_0x4249('0x9'));var fs=require('fs');var fs_extra=require(_0x4249('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x4249('0x8'));var querystring=require(_0x4249('0xb'));var Papa=require(_0x4249('0xc'));var Redis=require(_0x4249('0xd'));var authService=require(_0x4249('0xe'));var qs=require(_0x4249('0xf'));var as=require(_0x4249('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x4249('0x11'));var utils=require(_0x4249('0x12'));var config=require(_0x4249('0x13'));var licenseUtil=require(_0x4249('0x14'));var db=require(_0x4249('0x15'))['db'];function respondWithStatusCode(_0xc8a1d8,_0x116e06){_0x116e06=_0x116e06||0xcc;return function(_0x280230){if(_0x280230){return _0xc8a1d8[_0x4249('0x16')](_0x116e06);}return _0xc8a1d8['status'](_0x116e06)[_0x4249('0x17')]();};}function respondWithResult(_0x21957f,_0x237237){_0x237237=_0x237237||0xc8;return function(_0x4fa618){if(_0x4fa618){return _0x21957f[_0x4249('0x18')](_0x237237)[_0x4249('0x19')](_0x4fa618);}};}function respondWithFilteredResult(_0x3f316f,_0x4850ef){return function(_0x324b2b){if(_0x324b2b){var _0x1b7c86=typeof _0x4850ef[_0x4249('0x1a')]==='undefined'&&typeof _0x4850ef[_0x4249('0x1b')]===_0x4249('0x1c');var _0x43b04e=_0x324b2b['count'];var _0x43366c=_0x1b7c86?0x0:_0x4850ef[_0x4249('0x1a')];var _0x5e43e7=_0x1b7c86?_0x324b2b[_0x4249('0x1d')]:_0x4850ef[_0x4249('0x1a')]+_0x4850ef[_0x4249('0x1b')];var _0x3b43bb;if(_0x5e43e7>=_0x43b04e){_0x5e43e7=_0x43b04e;_0x3b43bb=0xc8;}else{_0x3b43bb=0xce;}_0x3f316f[_0x4249('0x18')](_0x3b43bb);return _0x3f316f[_0x4249('0x1e')](_0x4249('0x1f'),_0x43366c+'-'+_0x5e43e7+'/'+_0x43b04e)[_0x4249('0x19')](_0x324b2b);}return null;};}function patchUpdates(_0x4ec8bd){return function(_0x39a564){try{jsonpatch['apply'](_0x39a564,_0x4ec8bd,!![]);}catch(_0x24f585){return BPromise[_0x4249('0x20')](_0x24f585);}return _0x39a564['save']();};}function saveUpdates(_0x5ad289,_0x30e46c){return function(_0x18d6a3){if(_0x18d6a3){return _0x18d6a3[_0x4249('0x21')](_0x5ad289)[_0x4249('0x22')](function(_0x147c9f){return _0x147c9f;});}return null;};}function removeEntity(_0xc4e892,_0x5dbcf7){return function(_0x5c28e4){if(_0x5c28e4){return _0x5c28e4[_0x4249('0x23')]()[_0x4249('0x22')](function(){var _0x3cda82=_0x5c28e4[_0x4249('0x24')]({'plain':!![]});var _0x5690d4=_0x4249('0x25');return db[_0x4249('0x26')][_0x4249('0x23')]({'where':{'type':_0x5690d4,'resourceId':_0x3cda82['id']}})[_0x4249('0x22')](function(){return _0x5c28e4;});})[_0x4249('0x22')](function(){_0xc4e892['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x2973b9,_0x8e68fb){return function(_0x3d033f){if(!_0x3d033f){_0x2973b9[_0x4249('0x16')](0x194);}return _0x3d033f;};}function handleError(_0x2cd00e,_0x4fb7d4){_0x4fb7d4=_0x4fb7d4||0x1f4;return function(_0x1231ba){logger[_0x4249('0x27')](_0x1231ba[_0x4249('0x28')]);if(_0x1231ba['name']){delete _0x1231ba[_0x4249('0x29')];}_0x2cd00e[_0x4249('0x18')](_0x4fb7d4)[_0x4249('0x2a')](_0x1231ba);};}exports['index']=function(_0x208c5d,_0x13cf5e){var _0x219b68={},_0x128d09={},_0x335448={'count':0x0,'rows':[]};var _0x389351=_['map'](db['Schedule'][_0x4249('0x2b')],function(_0x55b65b){return{'name':_0x55b65b[_0x4249('0x2c')],'type':_0x55b65b[_0x4249('0x2d')][_0x4249('0x2e')]};});_0x128d09[_0x4249('0x2f')]=_['map'](_0x389351,_0x4249('0x29'));_0x128d09[_0x4249('0x30')]=_[_0x4249('0x31')](_0x208c5d[_0x4249('0x30')]);_0x128d09[_0x4249('0x32')]=_['intersection'](_0x128d09['model'],_0x128d09[_0x4249('0x30')]);_0x219b68[_0x4249('0x33')]=_[_0x4249('0x34')](_0x128d09[_0x4249('0x2f')],qs[_0x4249('0x35')](_0x208c5d['query'][_0x4249('0x35')]));_0x219b68[_0x4249('0x33')]=_0x219b68[_0x4249('0x33')]['length']?_0x219b68[_0x4249('0x33')]:_0x128d09['model'];if(!_0x208c5d[_0x4249('0x30')][_0x4249('0x36')]('nolimit')){_0x219b68[_0x4249('0x1b')]=qs['limit'](_0x208c5d[_0x4249('0x30')][_0x4249('0x1b')]);_0x219b68[_0x4249('0x1a')]=qs[_0x4249('0x1a')](_0x208c5d[_0x4249('0x30')][_0x4249('0x1a')]);}_0x219b68[_0x4249('0x37')]=qs['sort'](_0x208c5d[_0x4249('0x30')][_0x4249('0x38')]);_0x219b68['where']=qs[_0x4249('0x32')](_['pick'](_0x208c5d['query'],_0x128d09[_0x4249('0x32')]),_0x389351);if(_0x208c5d[_0x4249('0x30')]['filter']){_0x219b68[_0x4249('0x39')]=_[_0x4249('0x3a')](_0x219b68[_0x4249('0x39')],{'$or':_[_0x4249('0x3b')](_0x389351,function(_0x128683){if(_0x128683[_0x4249('0x2d')]!==_0x4249('0x3c')){var _0x3b3d55={};_0x3b3d55[_0x128683[_0x4249('0x29')]]={'$like':'%'+_0x208c5d[_0x4249('0x30')]['filter']+'%'};return _0x3b3d55;}})});}_0x219b68=_[_0x4249('0x3a')]({},_0x219b68,_0x208c5d[_0x4249('0x3d')]);var _0x202999={'where':_0x219b68[_0x4249('0x39')]};return db[_0x4249('0x3e')][_0x4249('0x1d')](_0x202999)[_0x4249('0x22')](function(_0x44a3dc){_0x335448[_0x4249('0x1d')]=_0x44a3dc;if(_0x208c5d[_0x4249('0x30')][_0x4249('0x3f')]){_0x219b68['include']=[{'all':!![]}];}return db[_0x4249('0x3e')][_0x4249('0x40')](_0x219b68);})[_0x4249('0x22')](function(_0x14faee){_0x335448[_0x4249('0x41')]=_0x14faee;return _0x335448;})[_0x4249('0x22')](respondWithFilteredResult(_0x13cf5e,_0x219b68))[_0x4249('0x42')](handleError(_0x13cf5e,null));};exports[_0x4249('0x43')]=function(_0xb015bc,_0x3d177b){var _0x125204={'raw':![],'where':{'id':_0xb015bc[_0x4249('0x44')]['id']}},_0x5f3653={};_0x5f3653[_0x4249('0x2f')]=_[_0x4249('0x31')](db[_0x4249('0x3e')][_0x4249('0x2b')]);_0x5f3653[_0x4249('0x30')]=_[_0x4249('0x31')](_0xb015bc['query']);_0x5f3653[_0x4249('0x32')]=_[_0x4249('0x34')](_0x5f3653[_0x4249('0x2f')],_0x5f3653['query']);_0x125204[_0x4249('0x33')]=_[_0x4249('0x34')](_0x5f3653['model'],qs[_0x4249('0x35')](_0xb015bc[_0x4249('0x30')][_0x4249('0x35')]));_0x125204['attributes']=_0x125204['attributes'][_0x4249('0x45')]?_0x125204[_0x4249('0x33')]:_0x5f3653[_0x4249('0x2f')];if(_0xb015bc[_0x4249('0x30')][_0x4249('0x3f')]){_0x125204['include']=[{'all':!![]}];}_0x125204=_[_0x4249('0x3a')]({},_0x125204,_0xb015bc['options']);return db[_0x4249('0x3e')][_0x4249('0x46')](_0x125204)['then'](handleEntityNotFound(_0x3d177b,null))[_0x4249('0x22')](respondWithResult(_0x3d177b,null))['catch'](handleError(_0x3d177b,null));};exports[_0x4249('0x47')]=function(_0x54e983,_0x30b9a6){return db[_0x4249('0x3e')][_0x4249('0x47')](_0x54e983[_0x4249('0x48')],{})[_0x4249('0x22')](function(_0x2bdfd3){var _0x244bdc=_0x54e983[_0x4249('0x49')]['get']({'plain':!![]});if(!_0x244bdc)throw new Error(_0x4249('0x4a'));if(_0x244bdc['role']===_0x4249('0x49')){var _0x441217=_0x2bdfd3['get']({'plain':!![]});var _0x1193cf=_0x4249('0x25');return db[_0x4249('0x4b')][_0x4249('0x46')]({'where':{'name':_0x1193cf,'userProfileId':_0x244bdc[_0x4249('0x4c')]},'raw':!![]})[_0x4249('0x22')](function(_0x148848){if(_0x148848&&_0x148848[_0x4249('0x4d')]===0x0){return db[_0x4249('0x26')][_0x4249('0x47')]({'name':_0x441217['name'],'resourceId':_0x441217['id'],'type':_0x148848['name'],'sectionId':_0x148848['id']},{})[_0x4249('0x22')](function(){return _0x2bdfd3;});}else{return _0x2bdfd3;}})['catch'](function(_0x512b38){logger[_0x4249('0x27')](_0x4249('0x4e'),_0x512b38);throw _0x512b38;});}return _0x2bdfd3;})['then'](respondWithResult(_0x30b9a6,0xc9))[_0x4249('0x42')](handleError(_0x30b9a6,null));};exports[_0x4249('0x21')]=function(_0x451adb,_0x63c798){if(_0x451adb[_0x4249('0x48')]['id']){delete _0x451adb['body']['id'];}return db[_0x4249('0x3e')][_0x4249('0x46')]({'where':{'id':_0x451adb[_0x4249('0x44')]['id']}})['then'](handleEntityNotFound(_0x63c798,null))[_0x4249('0x22')](saveUpdates(_0x451adb['body'],null))[_0x4249('0x22')](respondWithResult(_0x63c798,null))[_0x4249('0x42')](handleError(_0x63c798,null));};exports[_0x4249('0x23')]=function(_0x40fcb8,_0x2c2cf4){return db[_0x4249('0x3e')][_0x4249('0x46')]({'where':{'id':_0x40fcb8[_0x4249('0x44')]['id']}})[_0x4249('0x22')](handleEntityNotFound(_0x2c2cf4,null))['then'](removeEntity(_0x2c2cf4,null))[_0x4249('0x42')](handleError(_0x2c2cf4,null));};exports[_0x4249('0x4f')]=function(_0xc0d8d5,_0x357bd1,_0x1200ec){var _0x54ccac=require('../../config/schedule');return db['Schedule']['find']({'where':{'id':_0xc0d8d5[_0x4249('0x44')]['id']},'raw':!![]})[_0x4249('0x22')](handleEntityNotFound(_0x357bd1,null))[_0x4249('0x22')](function(){_0x54ccac[_0x4249('0x4f')](_0xc0d8d5[_0x4249('0x44')]['id']);})[_0x4249('0x22')](respondWithStatusCode(_0x357bd1,null))[_0x4249('0x42')](handleError(_0x357bd1,null));};