Built motion from commit d5e4af8c.|2.6.23
[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 _0x8942=['userProfileId','autoAssociation','create','destroy','run','../../config/schedule','zip-dir','request-promise','moment','bluebird','mustache','to-csv','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','get','Scheduler','UserProfileResource','error','name','send','Schedule','fieldName','model','map','query','filters','attributes','intersection','fields','hasOwnProperty','sort','where','pick','filter','type','VIRTUAL','includeAll','include','catch','show','params','rawAttributes','keys','length','merge','find','body','user','UserProfileSection'];(function(_0x410c62,_0x5bd8ca){var _0x5a210a=function(_0x2d8136){while(--_0x2d8136){_0x410c62['push'](_0x410c62['shift']());}};_0x5a210a(++_0x5bd8ca);}(_0x8942,0x136));var _0x2894=function(_0x87a706,_0x116dd0){_0x87a706=_0x87a706-0x0;var _0x52a464=_0x8942[_0x87a706];return _0x52a464;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2894('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2894('0x1'));var moment=require(_0x2894('0x2'));var BPromise=require(_0x2894('0x3'));var Mustache=require(_0x2894('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x2894('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2894('0x6'));var squel=require(_0x2894('0x7'));var crypto=require(_0x2894('0x8'));var jsforce=require(_0x2894('0x9'));var deskjs=require('desk.js');var toCsv=require(_0x2894('0x5'));var querystring=require('querystring');var Papa=require(_0x2894('0xa'));var Redis=require(_0x2894('0xb'));var authService=require(_0x2894('0xc'));var qs=require('../../components/parsers/qs');var as=require(_0x2894('0xd'));var hardwareService=require(_0x2894('0xe'));var logger=require(_0x2894('0xf'))(_0x2894('0x10'));var utils=require(_0x2894('0x11'));var config=require(_0x2894('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x2894('0x13'))['db'];function respondWithStatusCode(_0x54dcd2,_0x17fff5){_0x17fff5=_0x17fff5||0xcc;return function(_0x43a09f){if(_0x43a09f){return _0x54dcd2[_0x2894('0x14')](_0x17fff5);}return _0x54dcd2[_0x2894('0x15')](_0x17fff5)[_0x2894('0x16')]();};}function respondWithResult(_0x502a9b,_0x18a9da){_0x18a9da=_0x18a9da||0xc8;return function(_0x5462e1){if(_0x5462e1){return _0x502a9b[_0x2894('0x15')](_0x18a9da)[_0x2894('0x17')](_0x5462e1);}};}function respondWithFilteredResult(_0xc887b2,_0x4ba404){return function(_0x2fa646){if(_0x2fa646){var _0xf6d5bc=typeof _0x4ba404[_0x2894('0x18')]===_0x2894('0x19')&&typeof _0x4ba404[_0x2894('0x1a')]===_0x2894('0x19');var _0x2d4d8d=_0x2fa646[_0x2894('0x1b')];var _0x29f829=_0xf6d5bc?0x0:_0x4ba404['offset'];var _0x2e068d=_0xf6d5bc?_0x2fa646['count']:_0x4ba404[_0x2894('0x18')]+_0x4ba404['limit'];var _0x13155c;if(_0x2e068d>=_0x2d4d8d){_0x2e068d=_0x2d4d8d;_0x13155c=0xc8;}else{_0x13155c=0xce;}_0xc887b2['status'](_0x13155c);return _0xc887b2[_0x2894('0x1c')](_0x2894('0x1d'),_0x29f829+'-'+_0x2e068d+'/'+_0x2d4d8d)[_0x2894('0x17')](_0x2fa646);}return null;};}function patchUpdates(_0x39a207){return function(_0x3ef922){try{jsonpatch[_0x2894('0x1e')](_0x3ef922,_0x39a207,!![]);}catch(_0x3a9620){return BPromise[_0x2894('0x1f')](_0x3a9620);}return _0x3ef922[_0x2894('0x20')]();};}function saveUpdates(_0x38b9ab,_0x5d9560){return function(_0x3c01b3){if(_0x3c01b3){return _0x3c01b3[_0x2894('0x21')](_0x38b9ab)[_0x2894('0x22')](function(_0x199a0f){return _0x199a0f;});}return null;};}function removeEntity(_0xd6346e,_0x177be7){return function(_0x234085){if(_0x234085){return _0x234085['destroy']()[_0x2894('0x22')](function(){var _0x5b5a16=_0x234085[_0x2894('0x23')]({'plain':!![]});var _0x1c1efe=_0x2894('0x24');return db[_0x2894('0x25')]['destroy']({'where':{'type':_0x1c1efe,'resourceId':_0x5b5a16['id']}})[_0x2894('0x22')](function(){return _0x234085;});})[_0x2894('0x22')](function(){_0xd6346e['status'](0xcc)[_0x2894('0x16')]();});}};}function handleEntityNotFound(_0x42f8fa,_0xf9f691){return function(_0x3d0536){if(!_0x3d0536){_0x42f8fa[_0x2894('0x14')](0x194);}return _0x3d0536;};}function handleError(_0x5efdae,_0x46ef48){_0x46ef48=_0x46ef48||0x1f4;return function(_0x3760ea){logger[_0x2894('0x26')](_0x3760ea['stack']);if(_0x3760ea[_0x2894('0x27')]){delete _0x3760ea[_0x2894('0x27')];}_0x5efdae[_0x2894('0x15')](_0x46ef48)[_0x2894('0x28')](_0x3760ea);};}exports['index']=function(_0xb1ea1a,_0x39146c){var _0x5bacf8={},_0x6cf43c={},_0x4c2ae1={'count':0x0,'rows':[]};var _0x5d73cf=_['map'](db[_0x2894('0x29')]['rawAttributes'],function(_0x4835e6){return{'name':_0x4835e6[_0x2894('0x2a')],'type':_0x4835e6['type']['key']};});_0x6cf43c[_0x2894('0x2b')]=_[_0x2894('0x2c')](_0x5d73cf,_0x2894('0x27'));_0x6cf43c[_0x2894('0x2d')]=_['keys'](_0xb1ea1a[_0x2894('0x2d')]);_0x6cf43c[_0x2894('0x2e')]=_['intersection'](_0x6cf43c['model'],_0x6cf43c[_0x2894('0x2d')]);_0x5bacf8[_0x2894('0x2f')]=_[_0x2894('0x30')](_0x6cf43c['model'],qs[_0x2894('0x31')](_0xb1ea1a[_0x2894('0x2d')][_0x2894('0x31')]));_0x5bacf8[_0x2894('0x2f')]=_0x5bacf8['attributes']['length']?_0x5bacf8[_0x2894('0x2f')]:_0x6cf43c[_0x2894('0x2b')];if(!_0xb1ea1a[_0x2894('0x2d')][_0x2894('0x32')]('nolimit')){_0x5bacf8[_0x2894('0x1a')]=qs[_0x2894('0x1a')](_0xb1ea1a['query'][_0x2894('0x1a')]);_0x5bacf8['offset']=qs['offset'](_0xb1ea1a[_0x2894('0x2d')]['offset']);}_0x5bacf8['order']=qs['sort'](_0xb1ea1a['query'][_0x2894('0x33')]);_0x5bacf8[_0x2894('0x34')]=qs[_0x2894('0x2e')](_[_0x2894('0x35')](_0xb1ea1a['query'],_0x6cf43c[_0x2894('0x2e')]),_0x5d73cf);if(_0xb1ea1a[_0x2894('0x2d')][_0x2894('0x36')]){_0x5bacf8[_0x2894('0x34')]=_['merge'](_0x5bacf8[_0x2894('0x34')],{'$or':_[_0x2894('0x2c')](_0x5d73cf,function(_0x5c8abf){if(_0x5c8abf[_0x2894('0x37')]!==_0x2894('0x38')){var _0x4ca8f0={};_0x4ca8f0[_0x5c8abf[_0x2894('0x27')]]={'$like':'%'+_0xb1ea1a[_0x2894('0x2d')][_0x2894('0x36')]+'%'};return _0x4ca8f0;}})});}_0x5bacf8=_['merge']({},_0x5bacf8,_0xb1ea1a['options']);var _0x5eb36f={'where':_0x5bacf8[_0x2894('0x34')]};return db[_0x2894('0x29')]['count'](_0x5eb36f)[_0x2894('0x22')](function(_0x20ec83){_0x4c2ae1[_0x2894('0x1b')]=_0x20ec83;if(_0xb1ea1a[_0x2894('0x2d')][_0x2894('0x39')]){_0x5bacf8[_0x2894('0x3a')]=[{'all':!![]}];}return db['Schedule']['findAll'](_0x5bacf8);})[_0x2894('0x22')](function(_0x42cbf5){_0x4c2ae1['rows']=_0x42cbf5;return _0x4c2ae1;})[_0x2894('0x22')](respondWithFilteredResult(_0x39146c,_0x5bacf8))[_0x2894('0x3b')](handleError(_0x39146c,null));};exports[_0x2894('0x3c')]=function(_0x1e6f7c,_0x3b39b7){var _0x57f746={'raw':![],'where':{'id':_0x1e6f7c[_0x2894('0x3d')]['id']}},_0x964f9={};_0x964f9[_0x2894('0x2b')]=_['keys'](db[_0x2894('0x29')][_0x2894('0x3e')]);_0x964f9[_0x2894('0x2d')]=_[_0x2894('0x3f')](_0x1e6f7c[_0x2894('0x2d')]);_0x964f9['filters']=_[_0x2894('0x30')](_0x964f9[_0x2894('0x2b')],_0x964f9[_0x2894('0x2d')]);_0x57f746[_0x2894('0x2f')]=_[_0x2894('0x30')](_0x964f9[_0x2894('0x2b')],qs[_0x2894('0x31')](_0x1e6f7c[_0x2894('0x2d')][_0x2894('0x31')]));_0x57f746[_0x2894('0x2f')]=_0x57f746['attributes'][_0x2894('0x40')]?_0x57f746['attributes']:_0x964f9['model'];if(_0x1e6f7c[_0x2894('0x2d')]['includeAll']){_0x57f746[_0x2894('0x3a')]=[{'all':!![]}];}_0x57f746=_[_0x2894('0x41')]({},_0x57f746,_0x1e6f7c['options']);return db[_0x2894('0x29')][_0x2894('0x42')](_0x57f746)['then'](handleEntityNotFound(_0x3b39b7,null))[_0x2894('0x22')](respondWithResult(_0x3b39b7,null))[_0x2894('0x3b')](handleError(_0x3b39b7,null));};exports['create']=function(_0x33ebda,_0x15c4b4){return db['Schedule']['create'](_0x33ebda[_0x2894('0x43')],{})[_0x2894('0x22')](function(_0x1537ba){var _0x4b864d=_0x33ebda[_0x2894('0x44')][_0x2894('0x23')]({'plain':!![]});if(!_0x4b864d)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4b864d['role']==='user'){var _0x582839=_0x1537ba[_0x2894('0x23')]({'plain':!![]});var _0x4363b1=_0x2894('0x24');return db[_0x2894('0x45')][_0x2894('0x42')]({'where':{'name':_0x4363b1,'userProfileId':_0x4b864d[_0x2894('0x46')]},'raw':!![]})[_0x2894('0x22')](function(_0x592073){if(_0x592073&&_0x592073[_0x2894('0x47')]===0x0){return db[_0x2894('0x25')][_0x2894('0x48')]({'name':_0x582839[_0x2894('0x27')],'resourceId':_0x582839['id'],'type':_0x592073[_0x2894('0x27')],'sectionId':_0x592073['id']},{})[_0x2894('0x22')](function(){return _0x1537ba;});}else{return _0x1537ba;}})['catch'](function(_0x38f57a){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x38f57a);throw _0x38f57a;});}return _0x1537ba;})[_0x2894('0x22')](respondWithResult(_0x15c4b4,0xc9))[_0x2894('0x3b')](handleError(_0x15c4b4,null));};exports[_0x2894('0x21')]=function(_0x3bd834,_0x43c21b){if(_0x3bd834[_0x2894('0x43')]['id']){delete _0x3bd834[_0x2894('0x43')]['id'];}return db[_0x2894('0x29')]['find']({'where':{'id':_0x3bd834[_0x2894('0x3d')]['id']}})[_0x2894('0x22')](handleEntityNotFound(_0x43c21b,null))[_0x2894('0x22')](saveUpdates(_0x3bd834['body'],null))[_0x2894('0x22')](respondWithResult(_0x43c21b,null))['catch'](handleError(_0x43c21b,null));};exports[_0x2894('0x49')]=function(_0xefea7c,_0x115e88){return db['Schedule']['find']({'where':{'id':_0xefea7c[_0x2894('0x3d')]['id']}})[_0x2894('0x22')](handleEntityNotFound(_0x115e88,null))[_0x2894('0x22')](removeEntity(_0x115e88,null))[_0x2894('0x3b')](handleError(_0x115e88,null));};exports[_0x2894('0x4a')]=function(_0x50ed79,_0x129c07,_0x42a20e){var _0x27b896=require(_0x2894('0x4b'));return db[_0x2894('0x29')][_0x2894('0x42')]({'where':{'id':_0x50ed79[_0x2894('0x3d')]['id']},'raw':!![]})[_0x2894('0x22')](handleEntityNotFound(_0x129c07,null))['then'](function(){_0x27b896[_0x2894('0x4a')](_0x50ed79[_0x2894('0x3d')]['id']);})[_0x2894('0x22')](respondWithStatusCode(_0x129c07,null))[_0x2894('0x3b')](handleError(_0x129c07,null));};