Built motion from commit 85328c08.|2.5.50
[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 _0xa40e=['../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','get','Scheduler','UserProfileResource','destroy','error','name','index','rawAttributes','fieldName','type','key','query','keys','filters','model','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','merge','map','options','Schedule','includeAll','findAll','catch','params','length','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','run','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x5d72e1,_0x38740a){var _0x2f973e=function(_0x18c34d){while(--_0x18c34d){_0x5d72e1['push'](_0x5d72e1['shift']());}};_0x2f973e(++_0x38740a);}(_0xa40e,0xe5));var _0xea40=function(_0x2765b1,_0x3b47a4){_0x2765b1=_0x2765b1-0x0;var _0x761c6e=_0xa40e[_0x2765b1];return _0x761c6e;};'use strict';var emlformat=require(_0xea40('0x0'));var rimraf=require(_0xea40('0x1'));var zipdir=require(_0xea40('0x2'));var jsonpatch=require(_0xea40('0x3'));var rp=require(_0xea40('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xea40('0x5'));var sox=require(_0xea40('0x6'));var csv=require(_0xea40('0x7'));var ejs=require(_0xea40('0x8'));var fs=require('fs');var fs_extra=require(_0xea40('0x9'));var _=require(_0xea40('0xa'));var squel=require(_0xea40('0xb'));var crypto=require(_0xea40('0xc'));var jsforce=require(_0xea40('0xd'));var deskjs=require(_0xea40('0xe'));var toCsv=require('to-csv');var querystring=require(_0xea40('0xf'));var Papa=require(_0xea40('0x10'));var Redis=require(_0xea40('0x11'));var authService=require(_0xea40('0x12'));var qs=require(_0xea40('0x13'));var as=require(_0xea40('0x14'));var hardwareService=require(_0xea40('0x15'));var logger=require('../../config/logger')(_0xea40('0x16'));var utils=require(_0xea40('0x17'));var config=require(_0xea40('0x18'));var licenseUtil=require(_0xea40('0x19'));var db=require(_0xea40('0x1a'))['db'];function respondWithStatusCode(_0x5d35db,_0x1faccc){_0x1faccc=_0x1faccc||0xcc;return function(_0x5a3b3d){if(_0x5a3b3d){return _0x5d35db[_0xea40('0x1b')](_0x1faccc);}return _0x5d35db['status'](_0x1faccc)[_0xea40('0x1c')]();};}function respondWithResult(_0x30da77,_0x17eb4a){_0x17eb4a=_0x17eb4a||0xc8;return function(_0x4be284){if(_0x4be284){return _0x30da77[_0xea40('0x1d')](_0x17eb4a)[_0xea40('0x1e')](_0x4be284);}};}function respondWithFilteredResult(_0x43fc94,_0x59969e){return function(_0x3d8389){if(_0x3d8389){var _0x45052f=typeof _0x59969e[_0xea40('0x1f')]==='undefined'&&typeof _0x59969e[_0xea40('0x20')]===_0xea40('0x21');var _0x54973f=_0x3d8389[_0xea40('0x22')];var _0x31e16d=_0x45052f?0x0:_0x59969e[_0xea40('0x1f')];var _0x502fa4=_0x45052f?_0x3d8389[_0xea40('0x22')]:_0x59969e[_0xea40('0x1f')]+_0x59969e[_0xea40('0x20')];var _0x1a2caa;if(_0x502fa4>=_0x54973f){_0x502fa4=_0x54973f;_0x1a2caa=0xc8;}else{_0x1a2caa=0xce;}_0x43fc94['status'](_0x1a2caa);return _0x43fc94[_0xea40('0x23')](_0xea40('0x24'),_0x31e16d+'-'+_0x502fa4+'/'+_0x54973f)['json'](_0x3d8389);}return null;};}function patchUpdates(_0x1f48f6){return function(_0x33335f){try{jsonpatch[_0xea40('0x25')](_0x33335f,_0x1f48f6,!![]);}catch(_0x32f09d){return BPromise[_0xea40('0x26')](_0x32f09d);}return _0x33335f[_0xea40('0x27')]();};}function saveUpdates(_0xd0d5c0,_0xfd8aef){return function(_0x552d9b){if(_0x552d9b){return _0x552d9b[_0xea40('0x28')](_0xd0d5c0)[_0xea40('0x29')](function(_0x2d8fa1){return _0x2d8fa1;});}return null;};}function removeEntity(_0x5a593d,_0x27d951){return function(_0x331d9a){if(_0x331d9a){return _0x331d9a['destroy']()[_0xea40('0x29')](function(){var _0x3f448a=_0x331d9a[_0xea40('0x2a')]({'plain':!![]});var _0x2fdb2a=_0xea40('0x2b');return db[_0xea40('0x2c')][_0xea40('0x2d')]({'where':{'type':_0x2fdb2a,'resourceId':_0x3f448a['id']}})[_0xea40('0x29')](function(){return _0x331d9a;});})[_0xea40('0x29')](function(){_0x5a593d[_0xea40('0x1d')](0xcc)[_0xea40('0x1c')]();});}};}function handleEntityNotFound(_0x4631e3,_0x2c2954){return function(_0x104fb0){if(!_0x104fb0){_0x4631e3[_0xea40('0x1b')](0x194);}return _0x104fb0;};}function handleError(_0x92d542,_0x12abbb){_0x12abbb=_0x12abbb||0x1f4;return function(_0x362e2f){logger[_0xea40('0x2e')](_0x362e2f['stack']);if(_0x362e2f[_0xea40('0x2f')]){delete _0x362e2f[_0xea40('0x2f')];}_0x92d542[_0xea40('0x1d')](_0x12abbb)['send'](_0x362e2f);};}exports[_0xea40('0x30')]=function(_0x160ab0,_0x310135){var _0x5eddca={},_0x127503={},_0x2e4c1a={'count':0x0,'rows':[]};var _0x37e0bf=_['map'](db['Schedule'][_0xea40('0x31')],function(_0x1a808f){return{'name':_0x1a808f[_0xea40('0x32')],'type':_0x1a808f[_0xea40('0x33')][_0xea40('0x34')]};});_0x127503['model']=_['map'](_0x37e0bf,'name');_0x127503[_0xea40('0x35')]=_[_0xea40('0x36')](_0x160ab0[_0xea40('0x35')]);_0x127503[_0xea40('0x37')]=_['intersection'](_0x127503[_0xea40('0x38')],_0x127503[_0xea40('0x35')]);_0x5eddca['attributes']=_[_0xea40('0x39')](_0x127503['model'],qs['fields'](_0x160ab0[_0xea40('0x35')][_0xea40('0x3a')]));_0x5eddca[_0xea40('0x3b')]=_0x5eddca[_0xea40('0x3b')]['length']?_0x5eddca['attributes']:_0x127503['model'];if(!_0x160ab0['query'][_0xea40('0x3c')](_0xea40('0x3d'))){_0x5eddca[_0xea40('0x20')]=qs[_0xea40('0x20')](_0x160ab0['query']['limit']);_0x5eddca[_0xea40('0x1f')]=qs['offset'](_0x160ab0[_0xea40('0x35')][_0xea40('0x1f')]);}_0x5eddca['order']=qs[_0xea40('0x3e')](_0x160ab0[_0xea40('0x35')][_0xea40('0x3e')]);_0x5eddca[_0xea40('0x3f')]=qs[_0xea40('0x37')](_[_0xea40('0x40')](_0x160ab0[_0xea40('0x35')],_0x127503['filters']),_0x37e0bf);if(_0x160ab0[_0xea40('0x35')][_0xea40('0x41')]){_0x5eddca['where']=_[_0xea40('0x42')](_0x5eddca[_0xea40('0x3f')],{'$or':_[_0xea40('0x43')](_0x37e0bf,function(_0x18bbc1){if(_0x18bbc1[_0xea40('0x33')]!=='VIRTUAL'){var _0x59b044={};_0x59b044[_0x18bbc1[_0xea40('0x2f')]]={'$like':'%'+_0x160ab0['query'][_0xea40('0x41')]+'%'};return _0x59b044;}})});}_0x5eddca=_[_0xea40('0x42')]({},_0x5eddca,_0x160ab0[_0xea40('0x44')]);var _0x373f82={'where':_0x5eddca[_0xea40('0x3f')]};return db[_0xea40('0x45')][_0xea40('0x22')](_0x373f82)[_0xea40('0x29')](function(_0x1fc3d8){_0x2e4c1a[_0xea40('0x22')]=_0x1fc3d8;if(_0x160ab0[_0xea40('0x35')][_0xea40('0x46')]){_0x5eddca['include']=[{'all':!![]}];}return db['Schedule'][_0xea40('0x47')](_0x5eddca);})[_0xea40('0x29')](function(_0x3001c9){_0x2e4c1a['rows']=_0x3001c9;return _0x2e4c1a;})[_0xea40('0x29')](respondWithFilteredResult(_0x310135,_0x5eddca))[_0xea40('0x48')](handleError(_0x310135,null));};exports['show']=function(_0x18bdd0,_0xd035a1){var _0x197bf4={'raw':![],'where':{'id':_0x18bdd0[_0xea40('0x49')]['id']}},_0x35c34f={};_0x35c34f[_0xea40('0x38')]=_[_0xea40('0x36')](db[_0xea40('0x45')][_0xea40('0x31')]);_0x35c34f['query']=_[_0xea40('0x36')](_0x18bdd0['query']);_0x35c34f[_0xea40('0x37')]=_['intersection'](_0x35c34f[_0xea40('0x38')],_0x35c34f[_0xea40('0x35')]);_0x197bf4['attributes']=_[_0xea40('0x39')](_0x35c34f[_0xea40('0x38')],qs[_0xea40('0x3a')](_0x18bdd0[_0xea40('0x35')][_0xea40('0x3a')]));_0x197bf4[_0xea40('0x3b')]=_0x197bf4[_0xea40('0x3b')][_0xea40('0x4a')]?_0x197bf4[_0xea40('0x3b')]:_0x35c34f[_0xea40('0x38')];if(_0x18bdd0[_0xea40('0x35')][_0xea40('0x46')]){_0x197bf4[_0xea40('0x4b')]=[{'all':!![]}];}_0x197bf4=_[_0xea40('0x42')]({},_0x197bf4,_0x18bdd0['options']);return db[_0xea40('0x45')][_0xea40('0x4c')](_0x197bf4)[_0xea40('0x29')](handleEntityNotFound(_0xd035a1,null))['then'](respondWithResult(_0xd035a1,null))[_0xea40('0x48')](handleError(_0xd035a1,null));};exports[_0xea40('0x4d')]=function(_0x4c4efd,_0x7cd543){return db[_0xea40('0x45')]['create'](_0x4c4efd[_0xea40('0x4e')],{})[_0xea40('0x29')](function(_0x4de1fa){var _0x4e0606=_0x4c4efd['user'][_0xea40('0x2a')]({'plain':!![]});if(!_0x4e0606)throw new Error(_0xea40('0x4f'));if(_0x4e0606['role']==='user'){var _0x1ae597=_0x4de1fa[_0xea40('0x2a')]({'plain':!![]});var _0xdca0c0=_0xea40('0x2b');return db['UserProfileSection'][_0xea40('0x4c')]({'where':{'name':_0xdca0c0,'userProfileId':_0x4e0606[_0xea40('0x50')]},'raw':!![]})['then'](function(_0x555d27){if(_0x555d27&&_0x555d27[_0xea40('0x51')]===0x0){return db[_0xea40('0x2c')][_0xea40('0x4d')]({'name':_0x1ae597[_0xea40('0x2f')],'resourceId':_0x1ae597['id'],'type':_0x555d27[_0xea40('0x2f')],'sectionId':_0x555d27['id']},{})[_0xea40('0x29')](function(){return _0x4de1fa;});}else{return _0x4de1fa;}})[_0xea40('0x48')](function(_0x29dce1){logger[_0xea40('0x2e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x29dce1);throw _0x29dce1;});}return _0x4de1fa;})[_0xea40('0x29')](respondWithResult(_0x7cd543,0xc9))['catch'](handleError(_0x7cd543,null));};exports[_0xea40('0x28')]=function(_0x5f5285,_0x385c3e){if(_0x5f5285['body']['id']){delete _0x5f5285['body']['id'];}return db[_0xea40('0x45')][_0xea40('0x4c')]({'where':{'id':_0x5f5285['params']['id']}})[_0xea40('0x29')](handleEntityNotFound(_0x385c3e,null))[_0xea40('0x29')](saveUpdates(_0x5f5285[_0xea40('0x4e')],null))['then'](respondWithResult(_0x385c3e,null))[_0xea40('0x48')](handleError(_0x385c3e,null));};exports[_0xea40('0x2d')]=function(_0x10e92d,_0x201d69){return db['Schedule'][_0xea40('0x4c')]({'where':{'id':_0x10e92d['params']['id']}})[_0xea40('0x29')](handleEntityNotFound(_0x201d69,null))['then'](removeEntity(_0x201d69,null))[_0xea40('0x48')](handleError(_0x201d69,null));};exports[_0xea40('0x52')]=function(_0x5ed23c,_0xbc1902,_0x43d996){var _0x9c48fe=require('../../config/schedule');return db[_0xea40('0x45')][_0xea40('0x4c')]({'where':{'id':_0x5ed23c[_0xea40('0x49')]['id']},'raw':!![]})[_0xea40('0x29')](handleEntityNotFound(_0xbc1902,null))[_0xea40('0x29')](function(){_0x9c48fe[_0xea40('0x52')](_0x5ed23c[_0xea40('0x49')]['id']);})[_0xea40('0x29')](respondWithStatusCode(_0xbc1902,null))[_0xea40('0x48')](handleError(_0xbc1902,null));};