Built motion from commit caf7d5f0.|2.5.39
[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 _0xc350=['../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','sendStatus','status','end','json','offset','undefined','count','limit','save','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','send','index','map','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','Schedule','include','findAll','rows','catch','show','keys','length','includeAll','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','run','../../config/schedule','eml-format','zip-dir','fast-json-patch','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs'];(function(_0x4c9f6a,_0xcb2cb2){var _0x5df5b9=function(_0x303cf2){while(--_0x303cf2){_0x4c9f6a['push'](_0x4c9f6a['shift']());}};_0x5df5b9(++_0xcb2cb2);}(_0xc350,0x132));var _0x0c35=function(_0x223461,_0x2bca70){_0x223461=_0x223461-0x0;var _0x4dbe0a=_0xc350[_0x223461];return _0x4dbe0a;};'use strict';var emlformat=require(_0x0c35('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0c35('0x1'));var jsonpatch=require(_0x0c35('0x2'));var rp=require('request-promise');var moment=require(_0x0c35('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x0c35('0x4'));var path=require(_0x0c35('0x5'));var sox=require(_0x0c35('0x6'));var csv=require(_0x0c35('0x7'));var ejs=require(_0x0c35('0x8'));var fs=require('fs');var fs_extra=require(_0x0c35('0x9'));var _=require(_0x0c35('0xa'));var squel=require(_0x0c35('0xb'));var crypto=require(_0x0c35('0xc'));var jsforce=require(_0x0c35('0xd'));var deskjs=require(_0x0c35('0xe'));var toCsv=require(_0x0c35('0x7'));var querystring=require('querystring');var Papa=require(_0x0c35('0xf'));var Redis=require('ioredis');var authService=require(_0x0c35('0x10'));var qs=require(_0x0c35('0x11'));var as=require(_0x0c35('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0c35('0x13'))(_0x0c35('0x14'));var utils=require('../../config/utils');var config=require(_0x0c35('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1218c5,_0x37b73c){_0x37b73c=_0x37b73c||0xcc;return function(_0x27208d){if(_0x27208d){return _0x1218c5[_0x0c35('0x16')](_0x37b73c);}return _0x1218c5[_0x0c35('0x17')](_0x37b73c)[_0x0c35('0x18')]();};}function respondWithResult(_0x54338a,_0x59e018){_0x59e018=_0x59e018||0xc8;return function(_0x3b2189){if(_0x3b2189){return _0x54338a[_0x0c35('0x17')](_0x59e018)[_0x0c35('0x19')](_0x3b2189);}};}function respondWithFilteredResult(_0x1e1d30,_0x37f303){return function(_0x321b46){if(_0x321b46){var _0x28bfcb=typeof _0x37f303[_0x0c35('0x1a')]==='undefined'&&typeof _0x37f303['limit']===_0x0c35('0x1b');var _0x3a8c7b=_0x321b46[_0x0c35('0x1c')];var _0xb1ba1c=_0x28bfcb?0x0:_0x37f303[_0x0c35('0x1a')];var _0xc2e258=_0x28bfcb?_0x321b46[_0x0c35('0x1c')]:_0x37f303[_0x0c35('0x1a')]+_0x37f303[_0x0c35('0x1d')];var _0x464462;if(_0xc2e258>=_0x3a8c7b){_0xc2e258=_0x3a8c7b;_0x464462=0xc8;}else{_0x464462=0xce;}_0x1e1d30[_0x0c35('0x17')](_0x464462);return _0x1e1d30['set']('Content-Range',_0xb1ba1c+'-'+_0xc2e258+'/'+_0x3a8c7b)[_0x0c35('0x19')](_0x321b46);}return null;};}function patchUpdates(_0x3dffdf){return function(_0xbaade1){try{jsonpatch['apply'](_0xbaade1,_0x3dffdf,!![]);}catch(_0x15f855){return BPromise['reject'](_0x15f855);}return _0xbaade1[_0x0c35('0x1e')]();};}function saveUpdates(_0x182bf8,_0x25d216){return function(_0x3aed04){if(_0x3aed04){return _0x3aed04['update'](_0x182bf8)[_0x0c35('0x1f')](function(_0x5a9773){return _0x5a9773;});}return null;};}function removeEntity(_0x37d8ea,_0x1d3430){return function(_0x4b8fc2){if(_0x4b8fc2){return _0x4b8fc2[_0x0c35('0x20')]()['then'](function(){var _0x570576=_0x4b8fc2[_0x0c35('0x21')]({'plain':!![]});var _0x4971f4=_0x0c35('0x22');return db[_0x0c35('0x23')][_0x0c35('0x20')]({'where':{'type':_0x4971f4,'resourceId':_0x570576['id']}})['then'](function(){return _0x4b8fc2;});})[_0x0c35('0x1f')](function(){_0x37d8ea[_0x0c35('0x17')](0xcc)[_0x0c35('0x18')]();});}};}function handleEntityNotFound(_0x4f14e7,_0x2790b0){return function(_0x210080){if(!_0x210080){_0x4f14e7[_0x0c35('0x16')](0x194);}return _0x210080;};}function handleError(_0x42bea0,_0x1f5eab){_0x1f5eab=_0x1f5eab||0x1f4;return function(_0x5b65d6){logger[_0x0c35('0x24')](_0x5b65d6[_0x0c35('0x25')]);if(_0x5b65d6['name']){delete _0x5b65d6[_0x0c35('0x26')];}_0x42bea0[_0x0c35('0x17')](_0x1f5eab)[_0x0c35('0x27')](_0x5b65d6);};}exports[_0x0c35('0x28')]=function(_0x2823c3,_0x214960){var _0x1a5d70={},_0x5e0268={},_0x1ccd1e={'count':0x0,'rows':[]};var _0x3b80f1=_[_0x0c35('0x29')](db['Schedule'][_0x0c35('0x2a')],function(_0x4de4e4){return{'name':_0x4de4e4['fieldName'],'type':_0x4de4e4[_0x0c35('0x2b')][_0x0c35('0x2c')]};});_0x5e0268[_0x0c35('0x2d')]=_[_0x0c35('0x29')](_0x3b80f1,_0x0c35('0x26'));_0x5e0268[_0x0c35('0x2e')]=_['keys'](_0x2823c3[_0x0c35('0x2e')]);_0x5e0268[_0x0c35('0x2f')]=_[_0x0c35('0x30')](_0x5e0268['model'],_0x5e0268[_0x0c35('0x2e')]);_0x1a5d70[_0x0c35('0x31')]=_[_0x0c35('0x30')](_0x5e0268['model'],qs[_0x0c35('0x32')](_0x2823c3[_0x0c35('0x2e')][_0x0c35('0x32')]));_0x1a5d70[_0x0c35('0x31')]=_0x1a5d70['attributes']['length']?_0x1a5d70[_0x0c35('0x31')]:_0x5e0268[_0x0c35('0x2d')];if(!_0x2823c3['query'][_0x0c35('0x33')](_0x0c35('0x34'))){_0x1a5d70['limit']=qs['limit'](_0x2823c3['query'][_0x0c35('0x1d')]);_0x1a5d70['offset']=qs[_0x0c35('0x1a')](_0x2823c3[_0x0c35('0x2e')][_0x0c35('0x1a')]);}_0x1a5d70[_0x0c35('0x35')]=qs[_0x0c35('0x36')](_0x2823c3['query'][_0x0c35('0x36')]);_0x1a5d70[_0x0c35('0x37')]=qs['filters'](_[_0x0c35('0x38')](_0x2823c3[_0x0c35('0x2e')],_0x5e0268[_0x0c35('0x2f')]),_0x3b80f1);if(_0x2823c3[_0x0c35('0x2e')][_0x0c35('0x39')]){_0x1a5d70[_0x0c35('0x37')]=_[_0x0c35('0x3a')](_0x1a5d70['where'],{'$or':_[_0x0c35('0x29')](_0x3b80f1,function(_0x344288){if(_0x344288[_0x0c35('0x2b')]!=='VIRTUAL'){var _0xd98e4e={};_0xd98e4e[_0x344288[_0x0c35('0x26')]]={'$like':'%'+_0x2823c3[_0x0c35('0x2e')]['filter']+'%'};return _0xd98e4e;}})});}_0x1a5d70=_[_0x0c35('0x3a')]({},_0x1a5d70,_0x2823c3[_0x0c35('0x3b')]);var _0x582c36={'where':_0x1a5d70[_0x0c35('0x37')]};return db[_0x0c35('0x3c')][_0x0c35('0x1c')](_0x582c36)[_0x0c35('0x1f')](function(_0x2fbaa0){_0x1ccd1e['count']=_0x2fbaa0;if(_0x2823c3[_0x0c35('0x2e')]['includeAll']){_0x1a5d70[_0x0c35('0x3d')]=[{'all':!![]}];}return db['Schedule'][_0x0c35('0x3e')](_0x1a5d70);})[_0x0c35('0x1f')](function(_0x5b682c){_0x1ccd1e[_0x0c35('0x3f')]=_0x5b682c;return _0x1ccd1e;})[_0x0c35('0x1f')](respondWithFilteredResult(_0x214960,_0x1a5d70))[_0x0c35('0x40')](handleError(_0x214960,null));};exports[_0x0c35('0x41')]=function(_0x3dddf1,_0x2d9e3a){var _0x15969c={'raw':![],'where':{'id':_0x3dddf1['params']['id']}},_0x4d92d7={};_0x4d92d7[_0x0c35('0x2d')]=_[_0x0c35('0x42')](db[_0x0c35('0x3c')]['rawAttributes']);_0x4d92d7[_0x0c35('0x2e')]=_[_0x0c35('0x42')](_0x3dddf1['query']);_0x4d92d7[_0x0c35('0x2f')]=_[_0x0c35('0x30')](_0x4d92d7[_0x0c35('0x2d')],_0x4d92d7[_0x0c35('0x2e')]);_0x15969c['attributes']=_[_0x0c35('0x30')](_0x4d92d7[_0x0c35('0x2d')],qs[_0x0c35('0x32')](_0x3dddf1[_0x0c35('0x2e')][_0x0c35('0x32')]));_0x15969c[_0x0c35('0x31')]=_0x15969c[_0x0c35('0x31')][_0x0c35('0x43')]?_0x15969c['attributes']:_0x4d92d7[_0x0c35('0x2d')];if(_0x3dddf1[_0x0c35('0x2e')][_0x0c35('0x44')]){_0x15969c[_0x0c35('0x3d')]=[{'all':!![]}];}_0x15969c=_[_0x0c35('0x3a')]({},_0x15969c,_0x3dddf1[_0x0c35('0x3b')]);return db[_0x0c35('0x3c')]['find'](_0x15969c)['then'](handleEntityNotFound(_0x2d9e3a,null))[_0x0c35('0x1f')](respondWithResult(_0x2d9e3a,null))[_0x0c35('0x40')](handleError(_0x2d9e3a,null));};exports[_0x0c35('0x45')]=function(_0x311210,_0xf19fda){return db['Schedule']['create'](_0x311210[_0x0c35('0x46')],{})[_0x0c35('0x1f')](function(_0x3a3a1d){var _0x481364=_0x311210[_0x0c35('0x47')][_0x0c35('0x21')]({'plain':!![]});if(!_0x481364)throw new Error(_0x0c35('0x48'));if(_0x481364['role']===_0x0c35('0x47')){var _0x37a3ec=_0x3a3a1d['get']({'plain':!![]});var _0x5133fc=_0x0c35('0x22');return db[_0x0c35('0x49')][_0x0c35('0x4a')]({'where':{'name':_0x5133fc,'userProfileId':_0x481364[_0x0c35('0x4b')]},'raw':!![]})[_0x0c35('0x1f')](function(_0xfe120f){if(_0xfe120f&&_0xfe120f['autoAssociation']===0x0){return db[_0x0c35('0x23')][_0x0c35('0x45')]({'name':_0x37a3ec[_0x0c35('0x26')],'resourceId':_0x37a3ec['id'],'type':_0xfe120f[_0x0c35('0x26')],'sectionId':_0xfe120f['id']},{})[_0x0c35('0x1f')](function(){return _0x3a3a1d;});}else{return _0x3a3a1d;}})[_0x0c35('0x40')](function(_0x56015c){logger['error'](_0x0c35('0x4c'),_0x56015c);throw _0x56015c;});}return _0x3a3a1d;})[_0x0c35('0x1f')](respondWithResult(_0xf19fda,0xc9))[_0x0c35('0x40')](handleError(_0xf19fda,null));};exports[_0x0c35('0x4d')]=function(_0xf92309,_0x17e60a){if(_0xf92309['body']['id']){delete _0xf92309['body']['id'];}return db[_0x0c35('0x3c')][_0x0c35('0x4a')]({'where':{'id':_0xf92309['params']['id']}})['then'](handleEntityNotFound(_0x17e60a,null))[_0x0c35('0x1f')](saveUpdates(_0xf92309[_0x0c35('0x46')],null))[_0x0c35('0x1f')](respondWithResult(_0x17e60a,null))[_0x0c35('0x40')](handleError(_0x17e60a,null));};exports[_0x0c35('0x20')]=function(_0xd05b14,_0x147dce){return db['Schedule'][_0x0c35('0x4a')]({'where':{'id':_0xd05b14[_0x0c35('0x4e')]['id']}})[_0x0c35('0x1f')](handleEntityNotFound(_0x147dce,null))[_0x0c35('0x1f')](removeEntity(_0x147dce,null))[_0x0c35('0x40')](handleError(_0x147dce,null));};exports[_0x0c35('0x4f')]=function(_0x5b9658,_0x32fa77,_0xc3e29b){var _0x3e6402=require(_0x0c35('0x50'));return db[_0x0c35('0x3c')][_0x0c35('0x4a')]({'where':{'id':_0x5b9658['params']['id']},'raw':!![]})[_0x0c35('0x1f')](handleEntityNotFound(_0x32fa77,null))[_0x0c35('0x1f')](function(){_0x3e6402[_0x0c35('0x4f')](_0x5b9658['params']['id']);})[_0x0c35('0x1f')](respondWithStatusCode(_0x32fa77,null))[_0x0c35('0x40')](handleError(_0x32fa77,null));};