Built motion from commit 3e059bc2.|2.5.32
[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 _0xa398=['status','json','offset','undefined','limit','count','Content-Range','reject','save','update','destroy','then','get','Scheduler','UserProfileResource','end','sendStatus','error','name','send','index','map','Schedule','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','merge','includeAll','findAll','rows','show','rawAttributes','include','options','find','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','params','run','../../config/schedule','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0xc0645f,_0x5ebec2){var _0x3cb082=function(_0x34fdf8){while(--_0x34fdf8){_0xc0645f['push'](_0xc0645f['shift']());}};_0x3cb082(++_0x5ebec2);}(_0xa398,0xe6));var _0x8a39=function(_0x4ea586,_0x1b8473){_0x4ea586=_0x4ea586-0x0;var _0x1cbc8a=_0xa398[_0x4ea586];return _0x1cbc8a;};'use strict';var emlformat=require(_0x8a39('0x0'));var rimraf=require(_0x8a39('0x1'));var zipdir=require(_0x8a39('0x2'));var jsonpatch=require(_0x8a39('0x3'));var rp=require(_0x8a39('0x4'));var moment=require(_0x8a39('0x5'));var BPromise=require(_0x8a39('0x6'));var Mustache=require(_0x8a39('0x7'));var util=require(_0x8a39('0x8'));var path=require(_0x8a39('0x9'));var sox=require(_0x8a39('0xa'));var csv=require('to-csv');var ejs=require(_0x8a39('0xb'));var fs=require('fs');var fs_extra=require(_0x8a39('0xc'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x8a39('0xd'));var jsforce=require(_0x8a39('0xe'));var deskjs=require(_0x8a39('0xf'));var toCsv=require(_0x8a39('0x10'));var querystring=require('querystring');var Papa=require(_0x8a39('0x11'));var Redis=require(_0x8a39('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8a39('0x13'));var logger=require('../../config/logger')(_0x8a39('0x14'));var utils=require(_0x8a39('0x15'));var config=require(_0x8a39('0x16'));var licenseUtil=require(_0x8a39('0x17'));var db=require(_0x8a39('0x18'))['db'];function respondWithStatusCode(_0x58077d,_0x126046){_0x126046=_0x126046||0xcc;return function(_0x3b8423){if(_0x3b8423){return _0x58077d['sendStatus'](_0x126046);}return _0x58077d[_0x8a39('0x19')](_0x126046)['end']();};}function respondWithResult(_0xaa6c47,_0x18b1d8){_0x18b1d8=_0x18b1d8||0xc8;return function(_0xd1c83b){if(_0xd1c83b){return _0xaa6c47['status'](_0x18b1d8)[_0x8a39('0x1a')](_0xd1c83b);}};}function respondWithFilteredResult(_0x9d97ce,_0x332f01){return function(_0x41dc06){if(_0x41dc06){var _0x1df3f1=typeof _0x332f01[_0x8a39('0x1b')]===_0x8a39('0x1c')&&typeof _0x332f01[_0x8a39('0x1d')]===_0x8a39('0x1c');var _0x3623f7=_0x41dc06[_0x8a39('0x1e')];var _0x1aa17c=_0x1df3f1?0x0:_0x332f01[_0x8a39('0x1b')];var _0x132b55=_0x1df3f1?_0x41dc06[_0x8a39('0x1e')]:_0x332f01[_0x8a39('0x1b')]+_0x332f01['limit'];var _0x20edd8;if(_0x132b55>=_0x3623f7){_0x132b55=_0x3623f7;_0x20edd8=0xc8;}else{_0x20edd8=0xce;}_0x9d97ce['status'](_0x20edd8);return _0x9d97ce['set'](_0x8a39('0x1f'),_0x1aa17c+'-'+_0x132b55+'/'+_0x3623f7)[_0x8a39('0x1a')](_0x41dc06);}return null;};}function patchUpdates(_0x45e553){return function(_0x374ec0){try{jsonpatch['apply'](_0x374ec0,_0x45e553,!![]);}catch(_0x4d6a35){return BPromise[_0x8a39('0x20')](_0x4d6a35);}return _0x374ec0[_0x8a39('0x21')]();};}function saveUpdates(_0x6af916,_0x127e4e){return function(_0xf27d79){if(_0xf27d79){return _0xf27d79[_0x8a39('0x22')](_0x6af916)['then'](function(_0xf02d5c){return _0xf02d5c;});}return null;};}function removeEntity(_0x57655d,_0x4bb44f){return function(_0x22a453){if(_0x22a453){return _0x22a453[_0x8a39('0x23')]()[_0x8a39('0x24')](function(){var _0x52c689=_0x22a453[_0x8a39('0x25')]({'plain':!![]});var _0x104b26=_0x8a39('0x26');return db[_0x8a39('0x27')]['destroy']({'where':{'type':_0x104b26,'resourceId':_0x52c689['id']}})[_0x8a39('0x24')](function(){return _0x22a453;});})[_0x8a39('0x24')](function(){_0x57655d['status'](0xcc)[_0x8a39('0x28')]();});}};}function handleEntityNotFound(_0x37152f,_0x40226a){return function(_0x4be3fa){if(!_0x4be3fa){_0x37152f[_0x8a39('0x29')](0x194);}return _0x4be3fa;};}function handleError(_0x5b40e4,_0x2c42d6){_0x2c42d6=_0x2c42d6||0x1f4;return function(_0x1689b7){logger[_0x8a39('0x2a')](_0x1689b7['stack']);if(_0x1689b7[_0x8a39('0x2b')]){delete _0x1689b7['name'];}_0x5b40e4[_0x8a39('0x19')](_0x2c42d6)[_0x8a39('0x2c')](_0x1689b7);};}exports[_0x8a39('0x2d')]=function(_0x38b912,_0x12d32a){var _0x306965={},_0x541e4={},_0x24b6d7={'count':0x0,'rows':[]};var _0x49a3c=_[_0x8a39('0x2e')](db[_0x8a39('0x2f')]['rawAttributes'],function(_0x143869){return{'name':_0x143869['fieldName'],'type':_0x143869[_0x8a39('0x30')][_0x8a39('0x31')]};});_0x541e4[_0x8a39('0x32')]=_['map'](_0x49a3c,_0x8a39('0x2b'));_0x541e4[_0x8a39('0x33')]=_[_0x8a39('0x34')](_0x38b912[_0x8a39('0x33')]);_0x541e4[_0x8a39('0x35')]=_[_0x8a39('0x36')](_0x541e4['model'],_0x541e4[_0x8a39('0x33')]);_0x306965[_0x8a39('0x37')]=_[_0x8a39('0x36')](_0x541e4[_0x8a39('0x32')],qs[_0x8a39('0x38')](_0x38b912['query']['fields']));_0x306965[_0x8a39('0x37')]=_0x306965[_0x8a39('0x37')][_0x8a39('0x39')]?_0x306965['attributes']:_0x541e4[_0x8a39('0x32')];if(!_0x38b912[_0x8a39('0x33')][_0x8a39('0x3a')](_0x8a39('0x3b'))){_0x306965[_0x8a39('0x1d')]=qs['limit'](_0x38b912[_0x8a39('0x33')][_0x8a39('0x1d')]);_0x306965[_0x8a39('0x1b')]=qs[_0x8a39('0x1b')](_0x38b912['query'][_0x8a39('0x1b')]);}_0x306965[_0x8a39('0x3c')]=qs[_0x8a39('0x3d')](_0x38b912['query'][_0x8a39('0x3d')]);_0x306965[_0x8a39('0x3e')]=qs[_0x8a39('0x35')](_['pick'](_0x38b912['query'],_0x541e4[_0x8a39('0x35')]),_0x49a3c);if(_0x38b912[_0x8a39('0x33')][_0x8a39('0x3f')]){_0x306965['where']=_['merge'](_0x306965[_0x8a39('0x3e')],{'$or':_[_0x8a39('0x2e')](_0x49a3c,function(_0x3b0706){if(_0x3b0706[_0x8a39('0x30')]!==_0x8a39('0x40')){var _0x28e773={};_0x28e773[_0x3b0706[_0x8a39('0x2b')]]={'$like':'%'+_0x38b912[_0x8a39('0x33')][_0x8a39('0x3f')]+'%'};return _0x28e773;}})});}_0x306965=_[_0x8a39('0x41')]({},_0x306965,_0x38b912['options']);var _0x1557ec={'where':_0x306965['where']};return db[_0x8a39('0x2f')][_0x8a39('0x1e')](_0x1557ec)[_0x8a39('0x24')](function(_0x54fd7e){_0x24b6d7[_0x8a39('0x1e')]=_0x54fd7e;if(_0x38b912[_0x8a39('0x33')][_0x8a39('0x42')]){_0x306965['include']=[{'all':!![]}];}return db['Schedule'][_0x8a39('0x43')](_0x306965);})['then'](function(_0x2ca270){_0x24b6d7[_0x8a39('0x44')]=_0x2ca270;return _0x24b6d7;})[_0x8a39('0x24')](respondWithFilteredResult(_0x12d32a,_0x306965))['catch'](handleError(_0x12d32a,null));};exports[_0x8a39('0x45')]=function(_0x2cc4ac,_0x404ad9){var _0x44b9f0={'raw':![],'where':{'id':_0x2cc4ac['params']['id']}},_0x545fb5={};_0x545fb5[_0x8a39('0x32')]=_[_0x8a39('0x34')](db[_0x8a39('0x2f')][_0x8a39('0x46')]);_0x545fb5[_0x8a39('0x33')]=_[_0x8a39('0x34')](_0x2cc4ac[_0x8a39('0x33')]);_0x545fb5[_0x8a39('0x35')]=_[_0x8a39('0x36')](_0x545fb5[_0x8a39('0x32')],_0x545fb5[_0x8a39('0x33')]);_0x44b9f0[_0x8a39('0x37')]=_['intersection'](_0x545fb5[_0x8a39('0x32')],qs[_0x8a39('0x38')](_0x2cc4ac[_0x8a39('0x33')]['fields']));_0x44b9f0[_0x8a39('0x37')]=_0x44b9f0['attributes'][_0x8a39('0x39')]?_0x44b9f0['attributes']:_0x545fb5[_0x8a39('0x32')];if(_0x2cc4ac[_0x8a39('0x33')]['includeAll']){_0x44b9f0[_0x8a39('0x47')]=[{'all':!![]}];}_0x44b9f0=_['merge']({},_0x44b9f0,_0x2cc4ac[_0x8a39('0x48')]);return db['Schedule'][_0x8a39('0x49')](_0x44b9f0)[_0x8a39('0x24')](handleEntityNotFound(_0x404ad9,null))[_0x8a39('0x24')](respondWithResult(_0x404ad9,null))[_0x8a39('0x4a')](handleError(_0x404ad9,null));};exports['create']=function(_0x2e8d85,_0x495247){return db[_0x8a39('0x2f')][_0x8a39('0x4b')](_0x2e8d85[_0x8a39('0x4c')],{})[_0x8a39('0x24')](function(_0x586f16){var _0x23726f=_0x2e8d85['user'][_0x8a39('0x25')]({'plain':!![]});if(!_0x23726f)throw new Error(_0x8a39('0x4d'));if(_0x23726f[_0x8a39('0x4e')]===_0x8a39('0x4f')){var _0x568407=_0x586f16['get']({'plain':!![]});var _0x5f0eb9=_0x8a39('0x26');return db[_0x8a39('0x50')]['find']({'where':{'name':_0x5f0eb9,'userProfileId':_0x23726f[_0x8a39('0x51')]},'raw':!![]})[_0x8a39('0x24')](function(_0x472e85){if(_0x472e85&&_0x472e85['autoAssociation']===0x0){return db['UserProfileResource'][_0x8a39('0x4b')]({'name':_0x568407['name'],'resourceId':_0x568407['id'],'type':_0x472e85[_0x8a39('0x2b')],'sectionId':_0x472e85['id']},{})['then'](function(){return _0x586f16;});}else{return _0x586f16;}})['catch'](function(_0x7be26c){logger[_0x8a39('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x7be26c);throw _0x7be26c;});}return _0x586f16;})['then'](respondWithResult(_0x495247,0xc9))[_0x8a39('0x4a')](handleError(_0x495247,null));};exports[_0x8a39('0x22')]=function(_0x4ff6a0,_0x51820f){if(_0x4ff6a0['body']['id']){delete _0x4ff6a0[_0x8a39('0x4c')]['id'];}return db[_0x8a39('0x2f')]['find']({'where':{'id':_0x4ff6a0[_0x8a39('0x52')]['id']}})[_0x8a39('0x24')](handleEntityNotFound(_0x51820f,null))['then'](saveUpdates(_0x4ff6a0[_0x8a39('0x4c')],null))[_0x8a39('0x24')](respondWithResult(_0x51820f,null))[_0x8a39('0x4a')](handleError(_0x51820f,null));};exports[_0x8a39('0x23')]=function(_0x535a23,_0x229b0b){return db[_0x8a39('0x2f')][_0x8a39('0x49')]({'where':{'id':_0x535a23['params']['id']}})[_0x8a39('0x24')](handleEntityNotFound(_0x229b0b,null))[_0x8a39('0x24')](removeEntity(_0x229b0b,null))[_0x8a39('0x4a')](handleError(_0x229b0b,null));};exports[_0x8a39('0x53')]=function(_0xb3525f,_0xdbe81,_0xee07b8){var _0x4af091=require(_0x8a39('0x54'));return db['Schedule']['find']({'where':{'id':_0xb3525f[_0x8a39('0x52')]['id']},'raw':!![]})[_0x8a39('0x24')](handleEntityNotFound(_0xdbe81,null))['then'](function(){_0x4af091[_0x8a39('0x53')](_0xb3525f[_0x8a39('0x52')]['id']);})[_0x8a39('0x24')](respondWithStatusCode(_0xdbe81,null))['catch'](handleError(_0xdbe81,null));};