4b3fb2d127024b8a61d0c06ac01a0cfedf137e4c
[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 _0x21db=['get','role','user','UserProfileSection','userProfileId','autoAssociation','params','run','../../config/schedule','moment','bluebird','util','fs-extra','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','status','json','limit','count','offset','set','apply','update','destroy','Scheduler','UserProfileResource','then','end','sendStatus','error','stack','name','send','index','map','Schedule','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','catch','keys','find','create','body'];(function(_0x1fc78c,_0x2e9f0a){var _0x372835=function(_0x4fd5eb){while(--_0x4fd5eb){_0x1fc78c['push'](_0x1fc78c['shift']());}};_0x372835(++_0x2e9f0a);}(_0x21db,0xf0));var _0xb21d=function(_0x1df774,_0x2fc6a4){_0x1df774=_0x1df774-0x0;var _0x4a2732=_0x21db[_0x1df774];return _0x4a2732;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xb21d('0x0'));var BPromise=require(_0xb21d('0x1'));var Mustache=require('mustache');var util=require(_0xb21d('0x2'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb21d('0x3'));var _=require(_0xb21d('0x4'));var squel=require('squel');var crypto=require(_0xb21d('0x5'));var jsforce=require(_0xb21d('0x6'));var deskjs=require(_0xb21d('0x7'));var toCsv=require(_0xb21d('0x8'));var querystring=require(_0xb21d('0x9'));var Papa=require('papaparse');var Redis=require(_0xb21d('0xa'));var authService=require(_0xb21d('0xb'));var qs=require(_0xb21d('0xc'));var as=require(_0xb21d('0xd'));var hardwareService=require(_0xb21d('0xe'));var logger=require(_0xb21d('0xf'))('api');var utils=require(_0xb21d('0x10'));var config=require(_0xb21d('0x11'));var licenseUtil=require(_0xb21d('0x12'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x41b49e,_0x4a8905){_0x4a8905=_0x4a8905||0xcc;return function(_0x3b2479){if(_0x3b2479){return _0x41b49e['sendStatus'](_0x4a8905);}return _0x41b49e[_0xb21d('0x13')](_0x4a8905)['end']();};}function respondWithResult(_0x38a17d,_0x5f3859){_0x5f3859=_0x5f3859||0xc8;return function(_0x3479f3){if(_0x3479f3){return _0x38a17d['status'](_0x5f3859)[_0xb21d('0x14')](_0x3479f3);}};}function respondWithFilteredResult(_0x5d4f94,_0x8e70ac){return function(_0x5143e1){if(_0x5143e1){var _0x7362c8=typeof _0x8e70ac['offset']==='undefined'&&typeof _0x8e70ac[_0xb21d('0x15')]==='undefined';var _0x37bb78=_0x5143e1[_0xb21d('0x16')];var _0x526965=_0x7362c8?0x0:_0x8e70ac['offset'];var _0x495ec1=_0x7362c8?_0x5143e1[_0xb21d('0x16')]:_0x8e70ac[_0xb21d('0x17')]+_0x8e70ac[_0xb21d('0x15')];var _0x2e371b;if(_0x495ec1>=_0x37bb78){_0x495ec1=_0x37bb78;_0x2e371b=0xc8;}else{_0x2e371b=0xce;}_0x5d4f94[_0xb21d('0x13')](_0x2e371b);return _0x5d4f94[_0xb21d('0x18')]('Content-Range',_0x526965+'-'+_0x495ec1+'/'+_0x37bb78)[_0xb21d('0x14')](_0x5143e1);}return null;};}function patchUpdates(_0x3b7e47){return function(_0x21fdd6){try{jsonpatch[_0xb21d('0x19')](_0x21fdd6,_0x3b7e47,!![]);}catch(_0x6d8894){return BPromise['reject'](_0x6d8894);}return _0x21fdd6['save']();};}function saveUpdates(_0x3089b4,_0x4dbf37){return function(_0x27a58e){if(_0x27a58e){return _0x27a58e[_0xb21d('0x1a')](_0x3089b4)['then'](function(_0x565654){return _0x565654;});}return null;};}function removeEntity(_0x3c1132,_0x928e03){return function(_0x1fb9e7){if(_0x1fb9e7){return _0x1fb9e7[_0xb21d('0x1b')]()['then'](function(){var _0x1f2298=_0x1fb9e7['get']({'plain':!![]});var _0x5842c7=_0xb21d('0x1c');return db[_0xb21d('0x1d')][_0xb21d('0x1b')]({'where':{'type':_0x5842c7,'resourceId':_0x1f2298['id']}})[_0xb21d('0x1e')](function(){return _0x1fb9e7;});})[_0xb21d('0x1e')](function(){_0x3c1132['status'](0xcc)[_0xb21d('0x1f')]();});}};}function handleEntityNotFound(_0x359081,_0x449dd0){return function(_0x3e7b92){if(!_0x3e7b92){_0x359081[_0xb21d('0x20')](0x194);}return _0x3e7b92;};}function handleError(_0x508c7f,_0x448164){_0x448164=_0x448164||0x1f4;return function(_0x5d6192){logger[_0xb21d('0x21')](_0x5d6192[_0xb21d('0x22')]);if(_0x5d6192[_0xb21d('0x23')]){delete _0x5d6192[_0xb21d('0x23')];}_0x508c7f[_0xb21d('0x13')](_0x448164)[_0xb21d('0x24')](_0x5d6192);};}exports[_0xb21d('0x25')]=function(_0x22152d,_0xd057d0){var _0x1e1ffa={},_0x27118d={},_0x42e6a3={'count':0x0,'rows':[]};var _0x207a23=_[_0xb21d('0x26')](db[_0xb21d('0x27')][_0xb21d('0x28')],function(_0x5e2b31){return{'name':_0x5e2b31[_0xb21d('0x29')],'type':_0x5e2b31[_0xb21d('0x2a')][_0xb21d('0x2b')]};});_0x27118d[_0xb21d('0x2c')]=_['map'](_0x207a23,_0xb21d('0x23'));_0x27118d['query']=_['keys'](_0x22152d[_0xb21d('0x2d')]);_0x27118d[_0xb21d('0x2e')]=_[_0xb21d('0x2f')](_0x27118d[_0xb21d('0x2c')],_0x27118d[_0xb21d('0x2d')]);_0x1e1ffa[_0xb21d('0x30')]=_[_0xb21d('0x2f')](_0x27118d['model'],qs['fields'](_0x22152d[_0xb21d('0x2d')][_0xb21d('0x31')]));_0x1e1ffa[_0xb21d('0x30')]=_0x1e1ffa['attributes'][_0xb21d('0x32')]?_0x1e1ffa[_0xb21d('0x30')]:_0x27118d[_0xb21d('0x2c')];if(!_0x22152d['query'][_0xb21d('0x33')]('nolimit')){_0x1e1ffa[_0xb21d('0x15')]=qs[_0xb21d('0x15')](_0x22152d['query'][_0xb21d('0x15')]);_0x1e1ffa['offset']=qs[_0xb21d('0x17')](_0x22152d[_0xb21d('0x2d')][_0xb21d('0x17')]);}_0x1e1ffa[_0xb21d('0x34')]=qs['sort'](_0x22152d['query'][_0xb21d('0x35')]);_0x1e1ffa[_0xb21d('0x36')]=qs['filters'](_[_0xb21d('0x37')](_0x22152d[_0xb21d('0x2d')],_0x27118d[_0xb21d('0x2e')]),_0x207a23);if(_0x22152d[_0xb21d('0x2d')]['filter']){_0x1e1ffa[_0xb21d('0x36')]=_[_0xb21d('0x38')](_0x1e1ffa['where'],{'$or':_[_0xb21d('0x26')](_0x207a23,function(_0x5d0327){if(_0x5d0327['type']!==_0xb21d('0x39')){var _0x446d64={};_0x446d64[_0x5d0327['name']]={'$like':'%'+_0x22152d[_0xb21d('0x2d')][_0xb21d('0x3a')]+'%'};return _0x446d64;}})});}_0x1e1ffa=_['merge']({},_0x1e1ffa,_0x22152d[_0xb21d('0x3b')]);var _0x155f38={'where':_0x1e1ffa[_0xb21d('0x36')]};return db[_0xb21d('0x27')]['count'](_0x155f38)[_0xb21d('0x1e')](function(_0x421755){_0x42e6a3[_0xb21d('0x16')]=_0x421755;if(_0x22152d['query'][_0xb21d('0x3c')]){_0x1e1ffa[_0xb21d('0x3d')]=[{'all':!![]}];}return db['Schedule'][_0xb21d('0x3e')](_0x1e1ffa);})[_0xb21d('0x1e')](function(_0x2f0c25){_0x42e6a3['rows']=_0x2f0c25;return _0x42e6a3;})[_0xb21d('0x1e')](respondWithFilteredResult(_0xd057d0,_0x1e1ffa))[_0xb21d('0x3f')](handleError(_0xd057d0,null));};exports['show']=function(_0x11ee3b,_0x7577db){var _0x58f25e={'raw':![],'where':{'id':_0x11ee3b['params']['id']}},_0x4d37bd={};_0x4d37bd['model']=_[_0xb21d('0x40')](db[_0xb21d('0x27')][_0xb21d('0x28')]);_0x4d37bd[_0xb21d('0x2d')]=_[_0xb21d('0x40')](_0x11ee3b[_0xb21d('0x2d')]);_0x4d37bd[_0xb21d('0x2e')]=_['intersection'](_0x4d37bd[_0xb21d('0x2c')],_0x4d37bd[_0xb21d('0x2d')]);_0x58f25e['attributes']=_[_0xb21d('0x2f')](_0x4d37bd['model'],qs[_0xb21d('0x31')](_0x11ee3b[_0xb21d('0x2d')][_0xb21d('0x31')]));_0x58f25e['attributes']=_0x58f25e[_0xb21d('0x30')]['length']?_0x58f25e['attributes']:_0x4d37bd['model'];if(_0x11ee3b[_0xb21d('0x2d')][_0xb21d('0x3c')]){_0x58f25e['include']=[{'all':!![]}];}_0x58f25e=_[_0xb21d('0x38')]({},_0x58f25e,_0x11ee3b[_0xb21d('0x3b')]);return db[_0xb21d('0x27')][_0xb21d('0x41')](_0x58f25e)[_0xb21d('0x1e')](handleEntityNotFound(_0x7577db,null))['then'](respondWithResult(_0x7577db,null))['catch'](handleError(_0x7577db,null));};exports['create']=function(_0x2c84c1,_0x25fb6c){return db[_0xb21d('0x27')][_0xb21d('0x42')](_0x2c84c1[_0xb21d('0x43')],{})[_0xb21d('0x1e')](function(_0x5e4b8e){var _0x3de56d=_0x2c84c1['user'][_0xb21d('0x44')]({'plain':!![]});if(!_0x3de56d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3de56d[_0xb21d('0x45')]===_0xb21d('0x46')){var _0x10637c=_0x5e4b8e['get']({'plain':!![]});var _0x1d3551=_0xb21d('0x1c');return db[_0xb21d('0x47')]['find']({'where':{'name':_0x1d3551,'userProfileId':_0x3de56d[_0xb21d('0x48')]},'raw':!![]})[_0xb21d('0x1e')](function(_0x271b1b){if(_0x271b1b&&_0x271b1b[_0xb21d('0x49')]===0x0){return db[_0xb21d('0x1d')]['create']({'name':_0x10637c['name'],'resourceId':_0x10637c['id'],'type':_0x271b1b[_0xb21d('0x23')],'sectionId':_0x271b1b['id']},{})[_0xb21d('0x1e')](function(){return _0x5e4b8e;});}else{return _0x5e4b8e;}})['catch'](function(_0x5538bc){logger[_0xb21d('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x5538bc);throw _0x5538bc;});}return _0x5e4b8e;})[_0xb21d('0x1e')](respondWithResult(_0x25fb6c,0xc9))[_0xb21d('0x3f')](handleError(_0x25fb6c,null));};exports[_0xb21d('0x1a')]=function(_0x279058,_0x4676f7){if(_0x279058[_0xb21d('0x43')]['id']){delete _0x279058['body']['id'];}return db['Schedule'][_0xb21d('0x41')]({'where':{'id':_0x279058[_0xb21d('0x4a')]['id']}})[_0xb21d('0x1e')](handleEntityNotFound(_0x4676f7,null))[_0xb21d('0x1e')](saveUpdates(_0x279058['body'],null))[_0xb21d('0x1e')](respondWithResult(_0x4676f7,null))[_0xb21d('0x3f')](handleError(_0x4676f7,null));};exports[_0xb21d('0x1b')]=function(_0x197084,_0x4c3fe2){return db[_0xb21d('0x27')][_0xb21d('0x41')]({'where':{'id':_0x197084['params']['id']}})[_0xb21d('0x1e')](handleEntityNotFound(_0x4c3fe2,null))[_0xb21d('0x1e')](removeEntity(_0x4c3fe2,null))[_0xb21d('0x3f')](handleError(_0x4c3fe2,null));};exports[_0xb21d('0x4b')]=function(_0x26e4e4,_0x1fc604,_0x2f6592){var _0x359e81=require(_0xb21d('0x4c'));return db[_0xb21d('0x27')][_0xb21d('0x41')]({'where':{'id':_0x26e4e4[_0xb21d('0x4a')]['id']},'raw':!![]})[_0xb21d('0x1e')](handleEntityNotFound(_0x1fc604,null))[_0xb21d('0x1e')](function(){_0x359e81[_0xb21d('0x4b')](_0x26e4e4[_0xb21d('0x4a')]['id']);})[_0xb21d('0x1e')](respondWithStatusCode(_0x1fc604,null))[_0xb21d('0x3f')](handleError(_0x1fc604,null));};