Built motion from commit 10af8726.|2.6.34
[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 _0x1ae5=['find','catch','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','run','../../config/schedule','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','get','Scheduler','UserProfileResource','stack','name','send','index','Schedule','fieldName','type','model','query','filters','intersection','fields','attributes','length','order','sort','where','pick','merge','map','VIRTUAL','options','includeAll','findAll','rows','show','params','keys','rawAttributes'];(function(_0x187ee1,_0x3fd1e6){var _0x388160=function(_0x542dd2){while(--_0x542dd2){_0x187ee1['push'](_0x187ee1['shift']());}};_0x388160(++_0x3fd1e6);}(_0x1ae5,0xfa));var _0x51ae=function(_0x22c924,_0x3b0399){_0x22c924=_0x22c924-0x0;var _0xb71f56=_0x1ae5[_0x22c924];return _0xb71f56;};'use strict';var emlformat=require(_0x51ae('0x0'));var rimraf=require(_0x51ae('0x1'));var zipdir=require(_0x51ae('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x51ae('0x3'));var BPromise=require(_0x51ae('0x4'));var Mustache=require(_0x51ae('0x5'));var util=require(_0x51ae('0x6'));var path=require(_0x51ae('0x7'));var sox=require('sox');var csv=require(_0x51ae('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x51ae('0x9'));var _=require('lodash');var squel=require(_0x51ae('0xa'));var crypto=require(_0x51ae('0xb'));var jsforce=require(_0x51ae('0xc'));var deskjs=require(_0x51ae('0xd'));var toCsv=require(_0x51ae('0x8'));var querystring=require(_0x51ae('0xe'));var Papa=require(_0x51ae('0xf'));var Redis=require(_0x51ae('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x51ae('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x51ae('0x12'))(_0x51ae('0x13'));var utils=require('../../config/utils');var config=require(_0x51ae('0x14'));var licenseUtil=require(_0x51ae('0x15'));var db=require(_0x51ae('0x16'))['db'];function respondWithStatusCode(_0x10ec45,_0x2d0d76){_0x2d0d76=_0x2d0d76||0xcc;return function(_0x1f4b58){if(_0x1f4b58){return _0x10ec45[_0x51ae('0x17')](_0x2d0d76);}return _0x10ec45['status'](_0x2d0d76)[_0x51ae('0x18')]();};}function respondWithResult(_0x5ba33a,_0x57455a){_0x57455a=_0x57455a||0xc8;return function(_0x37c71b){if(_0x37c71b){return _0x5ba33a[_0x51ae('0x19')](_0x57455a)[_0x51ae('0x1a')](_0x37c71b);}};}function respondWithFilteredResult(_0x3738a3,_0x51ec8a){return function(_0x261de2){if(_0x261de2){var _0x3f44b6=typeof _0x51ec8a['offset']===_0x51ae('0x1b')&&typeof _0x51ec8a[_0x51ae('0x1c')]===_0x51ae('0x1b');var _0x1d165c=_0x261de2[_0x51ae('0x1d')];var _0x249791=_0x3f44b6?0x0:_0x51ec8a[_0x51ae('0x1e')];var _0x330b3b=_0x3f44b6?_0x261de2[_0x51ae('0x1d')]:_0x51ec8a[_0x51ae('0x1e')]+_0x51ec8a['limit'];var _0x11d5df;if(_0x330b3b>=_0x1d165c){_0x330b3b=_0x1d165c;_0x11d5df=0xc8;}else{_0x11d5df=0xce;}_0x3738a3[_0x51ae('0x19')](_0x11d5df);return _0x3738a3[_0x51ae('0x1f')](_0x51ae('0x20'),_0x249791+'-'+_0x330b3b+'/'+_0x1d165c)['json'](_0x261de2);}return null;};}function patchUpdates(_0x1edff2){return function(_0x309846){try{jsonpatch[_0x51ae('0x21')](_0x309846,_0x1edff2,!![]);}catch(_0x4e4142){return BPromise[_0x51ae('0x22')](_0x4e4142);}return _0x309846[_0x51ae('0x23')]();};}function saveUpdates(_0x33056c,_0x5c4c62){return function(_0x2355d5){if(_0x2355d5){return _0x2355d5[_0x51ae('0x24')](_0x33056c)[_0x51ae('0x25')](function(_0x984327){return _0x984327;});}return null;};}function removeEntity(_0x120ac4,_0x2ad529){return function(_0x5f1075){if(_0x5f1075){return _0x5f1075['destroy']()[_0x51ae('0x25')](function(){var _0x58c999=_0x5f1075[_0x51ae('0x26')]({'plain':!![]});var _0x2994cf=_0x51ae('0x27');return db[_0x51ae('0x28')]['destroy']({'where':{'type':_0x2994cf,'resourceId':_0x58c999['id']}})[_0x51ae('0x25')](function(){return _0x5f1075;});})[_0x51ae('0x25')](function(){_0x120ac4[_0x51ae('0x19')](0xcc)[_0x51ae('0x18')]();});}};}function handleEntityNotFound(_0x3e76ac,_0x50dafc){return function(_0x1151e3){if(!_0x1151e3){_0x3e76ac['sendStatus'](0x194);}return _0x1151e3;};}function handleError(_0x105bf6,_0xf9b72a){_0xf9b72a=_0xf9b72a||0x1f4;return function(_0x5557df){logger['error'](_0x5557df[_0x51ae('0x29')]);if(_0x5557df[_0x51ae('0x2a')]){delete _0x5557df['name'];}_0x105bf6[_0x51ae('0x19')](_0xf9b72a)[_0x51ae('0x2b')](_0x5557df);};}exports[_0x51ae('0x2c')]=function(_0xd1cb69,_0x17f247){var _0x5199d0={},_0xdf35fb={},_0x3a120f={'count':0x0,'rows':[]};var _0x1638aa=_['map'](db[_0x51ae('0x2d')]['rawAttributes'],function(_0x30308e){return{'name':_0x30308e[_0x51ae('0x2e')],'type':_0x30308e[_0x51ae('0x2f')]['key']};});_0xdf35fb[_0x51ae('0x30')]=_['map'](_0x1638aa,_0x51ae('0x2a'));_0xdf35fb['query']=_['keys'](_0xd1cb69[_0x51ae('0x31')]);_0xdf35fb[_0x51ae('0x32')]=_[_0x51ae('0x33')](_0xdf35fb[_0x51ae('0x30')],_0xdf35fb[_0x51ae('0x31')]);_0x5199d0['attributes']=_['intersection'](_0xdf35fb[_0x51ae('0x30')],qs[_0x51ae('0x34')](_0xd1cb69['query']['fields']));_0x5199d0[_0x51ae('0x35')]=_0x5199d0[_0x51ae('0x35')][_0x51ae('0x36')]?_0x5199d0[_0x51ae('0x35')]:_0xdf35fb[_0x51ae('0x30')];if(!_0xd1cb69[_0x51ae('0x31')]['hasOwnProperty']('nolimit')){_0x5199d0[_0x51ae('0x1c')]=qs[_0x51ae('0x1c')](_0xd1cb69[_0x51ae('0x31')][_0x51ae('0x1c')]);_0x5199d0[_0x51ae('0x1e')]=qs[_0x51ae('0x1e')](_0xd1cb69[_0x51ae('0x31')][_0x51ae('0x1e')]);}_0x5199d0[_0x51ae('0x37')]=qs[_0x51ae('0x38')](_0xd1cb69[_0x51ae('0x31')][_0x51ae('0x38')]);_0x5199d0[_0x51ae('0x39')]=qs['filters'](_[_0x51ae('0x3a')](_0xd1cb69['query'],_0xdf35fb[_0x51ae('0x32')]),_0x1638aa);if(_0xd1cb69['query']['filter']){_0x5199d0[_0x51ae('0x39')]=_[_0x51ae('0x3b')](_0x5199d0['where'],{'$or':_[_0x51ae('0x3c')](_0x1638aa,function(_0x2d377a){if(_0x2d377a[_0x51ae('0x2f')]!==_0x51ae('0x3d')){var _0x39a233={};_0x39a233[_0x2d377a[_0x51ae('0x2a')]]={'$like':'%'+_0xd1cb69['query']['filter']+'%'};return _0x39a233;}})});}_0x5199d0=_[_0x51ae('0x3b')]({},_0x5199d0,_0xd1cb69[_0x51ae('0x3e')]);var _0x512bee={'where':_0x5199d0['where']};return db[_0x51ae('0x2d')][_0x51ae('0x1d')](_0x512bee)[_0x51ae('0x25')](function(_0x2e3bfe){_0x3a120f[_0x51ae('0x1d')]=_0x2e3bfe;if(_0xd1cb69['query'][_0x51ae('0x3f')]){_0x5199d0['include']=[{'all':!![]}];}return db[_0x51ae('0x2d')][_0x51ae('0x40')](_0x5199d0);})['then'](function(_0x450ef7){_0x3a120f[_0x51ae('0x41')]=_0x450ef7;return _0x3a120f;})['then'](respondWithFilteredResult(_0x17f247,_0x5199d0))['catch'](handleError(_0x17f247,null));};exports[_0x51ae('0x42')]=function(_0x39f10e,_0x454efd){var _0x2431bd={'raw':![],'where':{'id':_0x39f10e[_0x51ae('0x43')]['id']}},_0x3c0a63={};_0x3c0a63[_0x51ae('0x30')]=_[_0x51ae('0x44')](db[_0x51ae('0x2d')][_0x51ae('0x45')]);_0x3c0a63[_0x51ae('0x31')]=_[_0x51ae('0x44')](_0x39f10e[_0x51ae('0x31')]);_0x3c0a63['filters']=_[_0x51ae('0x33')](_0x3c0a63[_0x51ae('0x30')],_0x3c0a63[_0x51ae('0x31')]);_0x2431bd[_0x51ae('0x35')]=_['intersection'](_0x3c0a63['model'],qs['fields'](_0x39f10e[_0x51ae('0x31')][_0x51ae('0x34')]));_0x2431bd[_0x51ae('0x35')]=_0x2431bd[_0x51ae('0x35')][_0x51ae('0x36')]?_0x2431bd[_0x51ae('0x35')]:_0x3c0a63['model'];if(_0x39f10e[_0x51ae('0x31')][_0x51ae('0x3f')]){_0x2431bd['include']=[{'all':!![]}];}_0x2431bd=_[_0x51ae('0x3b')]({},_0x2431bd,_0x39f10e['options']);return db[_0x51ae('0x2d')][_0x51ae('0x46')](_0x2431bd)[_0x51ae('0x25')](handleEntityNotFound(_0x454efd,null))[_0x51ae('0x25')](respondWithResult(_0x454efd,null))[_0x51ae('0x47')](handleError(_0x454efd,null));};exports['create']=function(_0x15d077,_0x3cf868){return db[_0x51ae('0x2d')]['create'](_0x15d077[_0x51ae('0x48')],{})[_0x51ae('0x25')](function(_0xf2f308){var _0x219b6d=_0x15d077[_0x51ae('0x49')][_0x51ae('0x26')]({'plain':!![]});if(!_0x219b6d)throw new Error(_0x51ae('0x4a'));if(_0x219b6d['role']==='user'){var _0x51f02f=_0xf2f308[_0x51ae('0x26')]({'plain':!![]});var _0x3adb7c=_0x51ae('0x27');return db['UserProfileSection'][_0x51ae('0x46')]({'where':{'name':_0x3adb7c,'userProfileId':_0x219b6d[_0x51ae('0x4b')]},'raw':!![]})[_0x51ae('0x25')](function(_0x2ba63c){if(_0x2ba63c&&_0x2ba63c['autoAssociation']===0x0){return db[_0x51ae('0x28')]['create']({'name':_0x51f02f[_0x51ae('0x2a')],'resourceId':_0x51f02f['id'],'type':_0x2ba63c['name'],'sectionId':_0x2ba63c['id']},{})[_0x51ae('0x25')](function(){return _0xf2f308;});}else{return _0xf2f308;}})[_0x51ae('0x47')](function(_0x34c12c){logger['error'](_0x51ae('0x4c'),_0x34c12c);throw _0x34c12c;});}return _0xf2f308;})[_0x51ae('0x25')](respondWithResult(_0x3cf868,0xc9))[_0x51ae('0x47')](handleError(_0x3cf868,null));};exports[_0x51ae('0x24')]=function(_0x3e6ee8,_0x58ae38){if(_0x3e6ee8[_0x51ae('0x48')]['id']){delete _0x3e6ee8['body']['id'];}return db[_0x51ae('0x2d')][_0x51ae('0x46')]({'where':{'id':_0x3e6ee8[_0x51ae('0x43')]['id']}})[_0x51ae('0x25')](handleEntityNotFound(_0x58ae38,null))[_0x51ae('0x25')](saveUpdates(_0x3e6ee8[_0x51ae('0x48')],null))['then'](respondWithResult(_0x58ae38,null))[_0x51ae('0x47')](handleError(_0x58ae38,null));};exports[_0x51ae('0x4d')]=function(_0x2ecdc1,_0x406bc1){return db['Schedule'][_0x51ae('0x46')]({'where':{'id':_0x2ecdc1[_0x51ae('0x43')]['id']}})['then'](handleEntityNotFound(_0x406bc1,null))[_0x51ae('0x25')](removeEntity(_0x406bc1,null))[_0x51ae('0x47')](handleError(_0x406bc1,null));};exports[_0x51ae('0x4e')]=function(_0x572a07,_0x5a7ec9,_0x32d4ac){var _0x2b93b0=require(_0x51ae('0x4f'));return db['Schedule'][_0x51ae('0x46')]({'where':{'id':_0x572a07['params']['id']},'raw':!![]})[_0x51ae('0x25')](handleEntityNotFound(_0x5a7ec9,null))[_0x51ae('0x25')](function(){_0x2b93b0[_0x51ae('0x4e')](_0x572a07[_0x51ae('0x43')]['id']);})['then'](respondWithStatusCode(_0x5a7ec9,null))[_0x51ae('0x47')](handleError(_0x5a7ec9,null));};