Built motion from commit 1fa89557.|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 _0x3ea8=['params','user','get','role','UserProfileSection','find','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','run','../../config/schedule','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','save','update','destroy','Scheduler','UserProfileResource','then','stack','name','send','index','Schedule','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','merge','filter','options','includeAll','include','findAll','rows','catch','show'];(function(_0x4514b1,_0x5226ab){var _0x2db9d5=function(_0x2e2305){while(--_0x2e2305){_0x4514b1['push'](_0x4514b1['shift']());}};_0x2db9d5(++_0x5226ab);}(_0x3ea8,0x105));var _0x83ea=function(_0x298a79,_0x1749c3){_0x298a79=_0x298a79-0x0;var _0x275ad7=_0x3ea8[_0x298a79];return _0x275ad7;};'use strict';var emlformat=require(_0x83ea('0x0'));var rimraf=require(_0x83ea('0x1'));var zipdir=require(_0x83ea('0x2'));var jsonpatch=require(_0x83ea('0x3'));var rp=require(_0x83ea('0x4'));var moment=require(_0x83ea('0x5'));var BPromise=require(_0x83ea('0x6'));var Mustache=require(_0x83ea('0x7'));var util=require(_0x83ea('0x8'));var path=require('path');var sox=require(_0x83ea('0x9'));var csv=require(_0x83ea('0xa'));var ejs=require(_0x83ea('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x83ea('0xc'));var squel=require(_0x83ea('0xd'));var crypto=require(_0x83ea('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x83ea('0xf'));var toCsv=require(_0x83ea('0xa'));var querystring=require(_0x83ea('0x10'));var Papa=require(_0x83ea('0x11'));var Redis=require(_0x83ea('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x83ea('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x83ea('0x14'))(_0x83ea('0x15'));var utils=require(_0x83ea('0x16'));var config=require(_0x83ea('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x49417f,_0x567a49){_0x567a49=_0x567a49||0xcc;return function(_0x4aa538){if(_0x4aa538){return _0x49417f[_0x83ea('0x18')](_0x567a49);}return _0x49417f['status'](_0x567a49)[_0x83ea('0x19')]();};}function respondWithResult(_0xf91086,_0x341eb2){_0x341eb2=_0x341eb2||0xc8;return function(_0x2645e3){if(_0x2645e3){return _0xf91086[_0x83ea('0x1a')](_0x341eb2)[_0x83ea('0x1b')](_0x2645e3);}};}function respondWithFilteredResult(_0x398c05,_0x4cc16e){return function(_0x13900c){if(_0x13900c){var _0x24c44e=typeof _0x4cc16e[_0x83ea('0x1c')]===_0x83ea('0x1d')&&typeof _0x4cc16e[_0x83ea('0x1e')]===_0x83ea('0x1d');var _0x1b70ed=_0x13900c[_0x83ea('0x1f')];var _0xc4ae72=_0x24c44e?0x0:_0x4cc16e[_0x83ea('0x1c')];var _0x35a2f7=_0x24c44e?_0x13900c[_0x83ea('0x1f')]:_0x4cc16e[_0x83ea('0x1c')]+_0x4cc16e['limit'];var _0x2b41c1;if(_0x35a2f7>=_0x1b70ed){_0x35a2f7=_0x1b70ed;_0x2b41c1=0xc8;}else{_0x2b41c1=0xce;}_0x398c05['status'](_0x2b41c1);return _0x398c05[_0x83ea('0x20')](_0x83ea('0x21'),_0xc4ae72+'-'+_0x35a2f7+'/'+_0x1b70ed)[_0x83ea('0x1b')](_0x13900c);}return null;};}function patchUpdates(_0x498ae3){return function(_0x590172){try{jsonpatch['apply'](_0x590172,_0x498ae3,!![]);}catch(_0x16638d){return BPromise['reject'](_0x16638d);}return _0x590172[_0x83ea('0x22')]();};}function saveUpdates(_0x4025b9,_0x5a9114){return function(_0x3c2358){if(_0x3c2358){return _0x3c2358[_0x83ea('0x23')](_0x4025b9)['then'](function(_0x37fd2f){return _0x37fd2f;});}return null;};}function removeEntity(_0x5d9ed5,_0x59af98){return function(_0x280e23){if(_0x280e23){return _0x280e23[_0x83ea('0x24')]()['then'](function(){var _0x2c9c86=_0x280e23['get']({'plain':!![]});var _0x5cf442=_0x83ea('0x25');return db[_0x83ea('0x26')][_0x83ea('0x24')]({'where':{'type':_0x5cf442,'resourceId':_0x2c9c86['id']}})[_0x83ea('0x27')](function(){return _0x280e23;});})[_0x83ea('0x27')](function(){_0x5d9ed5[_0x83ea('0x1a')](0xcc)[_0x83ea('0x19')]();});}};}function handleEntityNotFound(_0x25e61e,_0x3dbdf1){return function(_0x23e4f8){if(!_0x23e4f8){_0x25e61e[_0x83ea('0x18')](0x194);}return _0x23e4f8;};}function handleError(_0x2e7a98,_0x9dbad6){_0x9dbad6=_0x9dbad6||0x1f4;return function(_0x419920){logger['error'](_0x419920[_0x83ea('0x28')]);if(_0x419920[_0x83ea('0x29')]){delete _0x419920[_0x83ea('0x29')];}_0x2e7a98[_0x83ea('0x1a')](_0x9dbad6)[_0x83ea('0x2a')](_0x419920);};}exports[_0x83ea('0x2b')]=function(_0x72faaa,_0x5a909d){var _0x616428={},_0x2fb83a={},_0x41d7d0={'count':0x0,'rows':[]};var _0xdfa3d6=_['map'](db[_0x83ea('0x2c')][_0x83ea('0x2d')],function(_0x110ffa){return{'name':_0x110ffa[_0x83ea('0x2e')],'type':_0x110ffa[_0x83ea('0x2f')][_0x83ea('0x30')]};});_0x2fb83a[_0x83ea('0x31')]=_[_0x83ea('0x32')](_0xdfa3d6,_0x83ea('0x29'));_0x2fb83a[_0x83ea('0x33')]=_[_0x83ea('0x34')](_0x72faaa[_0x83ea('0x33')]);_0x2fb83a[_0x83ea('0x35')]=_[_0x83ea('0x36')](_0x2fb83a['model'],_0x2fb83a[_0x83ea('0x33')]);_0x616428['attributes']=_[_0x83ea('0x36')](_0x2fb83a['model'],qs[_0x83ea('0x37')](_0x72faaa[_0x83ea('0x33')][_0x83ea('0x37')]));_0x616428[_0x83ea('0x38')]=_0x616428['attributes'][_0x83ea('0x39')]?_0x616428[_0x83ea('0x38')]:_0x2fb83a['model'];if(!_0x72faaa['query']['hasOwnProperty'](_0x83ea('0x3a'))){_0x616428['limit']=qs[_0x83ea('0x1e')](_0x72faaa[_0x83ea('0x33')]['limit']);_0x616428[_0x83ea('0x1c')]=qs[_0x83ea('0x1c')](_0x72faaa[_0x83ea('0x33')][_0x83ea('0x1c')]);}_0x616428['order']=qs['sort'](_0x72faaa['query'][_0x83ea('0x3b')]);_0x616428[_0x83ea('0x3c')]=qs[_0x83ea('0x35')](_[_0x83ea('0x3d')](_0x72faaa[_0x83ea('0x33')],_0x2fb83a['filters']),_0xdfa3d6);if(_0x72faaa[_0x83ea('0x33')]['filter']){_0x616428[_0x83ea('0x3c')]=_[_0x83ea('0x3e')](_0x616428[_0x83ea('0x3c')],{'$or':_[_0x83ea('0x32')](_0xdfa3d6,function(_0x4fafe7){if(_0x4fafe7['type']!=='VIRTUAL'){var _0x48be5a={};_0x48be5a[_0x4fafe7[_0x83ea('0x29')]]={'$like':'%'+_0x72faaa[_0x83ea('0x33')][_0x83ea('0x3f')]+'%'};return _0x48be5a;}})});}_0x616428=_[_0x83ea('0x3e')]({},_0x616428,_0x72faaa[_0x83ea('0x40')]);var _0x555ee2={'where':_0x616428[_0x83ea('0x3c')]};return db[_0x83ea('0x2c')][_0x83ea('0x1f')](_0x555ee2)[_0x83ea('0x27')](function(_0xf66811){_0x41d7d0['count']=_0xf66811;if(_0x72faaa[_0x83ea('0x33')][_0x83ea('0x41')]){_0x616428[_0x83ea('0x42')]=[{'all':!![]}];}return db[_0x83ea('0x2c')][_0x83ea('0x43')](_0x616428);})['then'](function(_0x4f6ef5){_0x41d7d0[_0x83ea('0x44')]=_0x4f6ef5;return _0x41d7d0;})['then'](respondWithFilteredResult(_0x5a909d,_0x616428))[_0x83ea('0x45')](handleError(_0x5a909d,null));};exports[_0x83ea('0x46')]=function(_0x2394f5,_0x4903bf){var _0x731913={'raw':![],'where':{'id':_0x2394f5[_0x83ea('0x47')]['id']}},_0x52c80f={};_0x52c80f[_0x83ea('0x31')]=_['keys'](db[_0x83ea('0x2c')][_0x83ea('0x2d')]);_0x52c80f[_0x83ea('0x33')]=_[_0x83ea('0x34')](_0x2394f5['query']);_0x52c80f[_0x83ea('0x35')]=_[_0x83ea('0x36')](_0x52c80f['model'],_0x52c80f[_0x83ea('0x33')]);_0x731913['attributes']=_[_0x83ea('0x36')](_0x52c80f[_0x83ea('0x31')],qs[_0x83ea('0x37')](_0x2394f5[_0x83ea('0x33')][_0x83ea('0x37')]));_0x731913['attributes']=_0x731913[_0x83ea('0x38')][_0x83ea('0x39')]?_0x731913['attributes']:_0x52c80f[_0x83ea('0x31')];if(_0x2394f5['query'][_0x83ea('0x41')]){_0x731913[_0x83ea('0x42')]=[{'all':!![]}];}_0x731913=_['merge']({},_0x731913,_0x2394f5[_0x83ea('0x40')]);return db[_0x83ea('0x2c')]['find'](_0x731913)['then'](handleEntityNotFound(_0x4903bf,null))[_0x83ea('0x27')](respondWithResult(_0x4903bf,null))['catch'](handleError(_0x4903bf,null));};exports['create']=function(_0x2d1694,_0x177963){return db['Schedule']['create'](_0x2d1694['body'],{})[_0x83ea('0x27')](function(_0xe71117){var _0x450065=_0x2d1694[_0x83ea('0x48')][_0x83ea('0x49')]({'plain':!![]});if(!_0x450065)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x450065[_0x83ea('0x4a')]==='user'){var _0x6e0bd5=_0xe71117[_0x83ea('0x49')]({'plain':!![]});var _0x1d0794='Scheduler';return db[_0x83ea('0x4b')][_0x83ea('0x4c')]({'where':{'name':_0x1d0794,'userProfileId':_0x450065['userProfileId']},'raw':!![]})[_0x83ea('0x27')](function(_0x53021a){if(_0x53021a&&_0x53021a['autoAssociation']===0x0){return db[_0x83ea('0x26')][_0x83ea('0x4d')]({'name':_0x6e0bd5[_0x83ea('0x29')],'resourceId':_0x6e0bd5['id'],'type':_0x53021a['name'],'sectionId':_0x53021a['id']},{})['then'](function(){return _0xe71117;});}else{return _0xe71117;}})[_0x83ea('0x45')](function(_0x47d4cb){logger[_0x83ea('0x4e')](_0x83ea('0x4f'),_0x47d4cb);throw _0x47d4cb;});}return _0xe71117;})[_0x83ea('0x27')](respondWithResult(_0x177963,0xc9))[_0x83ea('0x45')](handleError(_0x177963,null));};exports['update']=function(_0x5bc543,_0x39a641){if(_0x5bc543['body']['id']){delete _0x5bc543['body']['id'];}return db[_0x83ea('0x2c')][_0x83ea('0x4c')]({'where':{'id':_0x5bc543[_0x83ea('0x47')]['id']}})[_0x83ea('0x27')](handleEntityNotFound(_0x39a641,null))[_0x83ea('0x27')](saveUpdates(_0x5bc543[_0x83ea('0x50')],null))[_0x83ea('0x27')](respondWithResult(_0x39a641,null))[_0x83ea('0x45')](handleError(_0x39a641,null));};exports[_0x83ea('0x24')]=function(_0x3c0ec1,_0x4297da){return db[_0x83ea('0x2c')][_0x83ea('0x4c')]({'where':{'id':_0x3c0ec1[_0x83ea('0x47')]['id']}})[_0x83ea('0x27')](handleEntityNotFound(_0x4297da,null))['then'](removeEntity(_0x4297da,null))['catch'](handleError(_0x4297da,null));};exports[_0x83ea('0x51')]=function(_0x2db415,_0x110970,_0x51e558){var _0x2c09c7=require(_0x83ea('0x52'));return db[_0x83ea('0x2c')][_0x83ea('0x4c')]({'where':{'id':_0x2db415[_0x83ea('0x47')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x110970,null))[_0x83ea('0x27')](function(){_0x2c09c7[_0x83ea('0x51')](_0x2db415['params']['id']);})['then'](respondWithStatusCode(_0x110970,null))[_0x83ea('0x45')](handleError(_0x110970,null));};