Built motion from commit (unavailable).|2.5.8
[motion2.git] / server / api / interval / interval.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 _0xe8cd=['findOne','length','options','getIntervals','addIntervals','sequelize','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','json','count','offset','Content-Range','save','update','then','Intervals','UserProfileResource','destroy','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','VIRTUAL','Interval','includeAll','include','rows','catch','params','keys','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','find','userProfileId','IntervalId'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xe8cd,0x106));var _0xde8c=function(_0x421725,_0x318a04){_0x421725=_0x421725-0x0;var _0x51b322=_0xe8cd[_0x421725];return _0x51b322;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xde8c('0x0'));var rimraf=require(_0xde8c('0x1'));var zipdir=require(_0xde8c('0x2'));var jsonpatch=require(_0xde8c('0x3'));var rp=require(_0xde8c('0x4'));var moment=require(_0xde8c('0x5'));var BPromise=require(_0xde8c('0x6'));var Mustache=require(_0xde8c('0x7'));var util=require(_0xde8c('0x8'));var path=require(_0xde8c('0x9'));var sox=require(_0xde8c('0xa'));var csv=require(_0xde8c('0xb'));var ejs=require(_0xde8c('0xc'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0xde8c('0xd'));var jsforce=require(_0xde8c('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xde8c('0xb'));var querystring=require(_0xde8c('0xf'));var Papa=require(_0xde8c('0x10'));var Redis=require(_0xde8c('0x11'));var authService=require(_0xde8c('0x12'));var qs=require(_0xde8c('0x13'));var as=require(_0xde8c('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xde8c('0x15'));var utils=require('../../config/utils');var config=require(_0xde8c('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xde8c('0x17'))['db'];var extensions=require(_0xde8c('0x18'));function respondWithStatusCode(_0x5adc21,_0x2e3702){_0x2e3702=_0x2e3702||0xcc;return function(_0x61a7f7){if(_0x61a7f7){return _0x5adc21[_0xde8c('0x19')](_0x2e3702);}return _0x5adc21['status'](_0x2e3702)['end']();};}function respondWithResult(_0x2c4c9b,_0x1da151){_0x1da151=_0x1da151||0xc8;return function(_0x1c819c){if(_0x1c819c){return _0x2c4c9b[_0xde8c('0x1a')](_0x1da151)[_0xde8c('0x1b')](_0x1c819c);}};}function respondWithFilteredResult(_0x346b0b,_0x4b2f74){return function(_0x20d127){if(_0x20d127){var _0x4d9127=_0x20d127[_0xde8c('0x1c')],_0x25262f=_0x4b2f74['offset'],_0x30b88a=_0x4b2f74[_0xde8c('0x1d')]+_0x4b2f74['limit'],_0x453048;if(_0x30b88a>=_0x4d9127){_0x30b88a=_0x4d9127;_0x453048=0xc8;}else{_0x453048=0xce;}_0x346b0b[_0xde8c('0x1a')](_0x453048);return _0x346b0b['set'](_0xde8c('0x1e'),_0x25262f+'-'+_0x30b88a+'/'+_0x4d9127)['json'](_0x20d127);}return null;};}function patchUpdates(_0x5c834e){return function(_0x26b45f){try{jsonpatch['apply'](_0x26b45f,_0x5c834e,!![]);}catch(_0x1e6334){return BPromise['reject'](_0x1e6334);}return _0x26b45f[_0xde8c('0x1f')]();};}function saveUpdates(_0x5e41b1,_0x2e2d82){return function(_0x36a78a){if(_0x36a78a){return _0x36a78a[_0xde8c('0x20')](_0x5e41b1)[_0xde8c('0x21')](function(_0x4e3bd1){return _0x4e3bd1;});}return null;};}function removeEntity(_0x38a211,_0x3cef43){return function(_0x282180){if(_0x282180){return _0x282180['destroy']()['then'](function(){var _0x1838d3=_0x282180['get']({'plain':!![]});var _0xa20637=_0xde8c('0x22');return db[_0xde8c('0x23')][_0xde8c('0x24')]({'where':{'type':_0xa20637,'resourceId':_0x1838d3['id']}})[_0xde8c('0x21')](function(){return _0x282180;});})[_0xde8c('0x21')](function(){_0x38a211[_0xde8c('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x310729,_0x4fa009){return function(_0x37b5a2){if(!_0x37b5a2){_0x310729[_0xde8c('0x19')](0x194);}return _0x37b5a2;};}function handleError(_0x34155c,_0x2d335e){_0x2d335e=_0x2d335e||0x1f4;return function(_0x30c6ff){logger[_0xde8c('0x25')](_0x30c6ff[_0xde8c('0x26')]);if(_0x30c6ff[_0xde8c('0x27')]){delete _0x30c6ff['name'];}_0x34155c[_0xde8c('0x1a')](_0x2d335e)[_0xde8c('0x28')](_0x30c6ff);};}exports['index']=function(_0x177e13,_0x30c67a){var _0x5802c7={},_0x5e79b9={},_0x1399ca={'count':0x0,'rows':[]};var _0x43dece=_[_0xde8c('0x29')](db['Interval'][_0xde8c('0x2a')],function(_0x4b701e){return{'name':_0x4b701e[_0xde8c('0x2b')],'type':_0x4b701e[_0xde8c('0x2c')][_0xde8c('0x2d')]};});_0x5e79b9[_0xde8c('0x2e')]=_[_0xde8c('0x29')](_0x43dece,_0xde8c('0x27'));_0x5e79b9['query']=_['keys'](_0x177e13[_0xde8c('0x2f')]);_0x5e79b9[_0xde8c('0x30')]=_[_0xde8c('0x31')](_0x5e79b9[_0xde8c('0x2e')],_0x5e79b9['query']);_0x5802c7['attributes']=_['intersection'](_0x5e79b9[_0xde8c('0x2e')],qs['fields'](_0x177e13[_0xde8c('0x2f')][_0xde8c('0x32')]));_0x5802c7['attributes']=_0x5802c7[_0xde8c('0x33')]['length']?_0x5802c7[_0xde8c('0x33')]:_0x5e79b9[_0xde8c('0x2e')];if(!_0x177e13[_0xde8c('0x2f')][_0xde8c('0x34')](_0xde8c('0x35'))){_0x5802c7[_0xde8c('0x36')]=qs[_0xde8c('0x36')](_0x177e13['query']['limit']);_0x5802c7[_0xde8c('0x1d')]=qs[_0xde8c('0x1d')](_0x177e13[_0xde8c('0x2f')][_0xde8c('0x1d')]);}_0x5802c7[_0xde8c('0x37')]=qs[_0xde8c('0x38')](_0x177e13['query'][_0xde8c('0x38')]);_0x5802c7['where']=qs['filters'](_[_0xde8c('0x39')](_0x177e13['query'],_0x5e79b9['filters']),_0x43dece);if(_0x177e13[_0xde8c('0x2f')][_0xde8c('0x3a')]){_0x5802c7[_0xde8c('0x3b')]=_[_0xde8c('0x3c')](_0x5802c7[_0xde8c('0x3b')],{'$or':_[_0xde8c('0x29')](_0x43dece,function(_0x1cbe63){if(_0x1cbe63[_0xde8c('0x2c')]!==_0xde8c('0x3d')){var _0x43317f={};_0x43317f[_0x1cbe63['name']]={'$like':'%'+_0x177e13[_0xde8c('0x2f')][_0xde8c('0x3a')]+'%'};return _0x43317f;}})});}_0x5802c7=_[_0xde8c('0x3c')]({},_0x5802c7,_0x177e13['options']);var _0x1d7c88={'where':_0x5802c7['where']};return db[_0xde8c('0x3e')]['count'](_0x1d7c88)[_0xde8c('0x21')](function(_0x202835){_0x1399ca['count']=_0x202835;if(_0x177e13[_0xde8c('0x2f')][_0xde8c('0x3f')]){_0x5802c7[_0xde8c('0x40')]=[{'all':!![]}];}return db[_0xde8c('0x3e')]['findAll'](_0x5802c7);})['then'](function(_0x18ab3c){_0x1399ca[_0xde8c('0x41')]=_0x18ab3c;return _0x1399ca;})[_0xde8c('0x21')](respondWithFilteredResult(_0x30c67a,_0x5802c7))[_0xde8c('0x42')](handleError(_0x30c67a,null));};exports['show']=function(_0x599ca3,_0x349d8e){var _0x30082f={'raw':!![],'where':{'id':_0x599ca3[_0xde8c('0x43')]['id']}},_0x158be3={};_0x158be3['model']=_['keys'](db['Interval'][_0xde8c('0x2a')]);_0x158be3[_0xde8c('0x2f')]=_[_0xde8c('0x44')](_0x599ca3[_0xde8c('0x2f')]);_0x158be3['filters']=_[_0xde8c('0x31')](_0x158be3[_0xde8c('0x2e')],_0x158be3[_0xde8c('0x2f')]);_0x30082f[_0xde8c('0x33')]=_[_0xde8c('0x31')](_0x158be3[_0xde8c('0x2e')],qs[_0xde8c('0x32')](_0x599ca3['query'][_0xde8c('0x32')]));_0x30082f[_0xde8c('0x33')]=_0x30082f[_0xde8c('0x33')]['length']?_0x30082f[_0xde8c('0x33')]:_0x158be3[_0xde8c('0x2e')];if(_0x599ca3['query'][_0xde8c('0x3f')]){_0x30082f[_0xde8c('0x40')]=[{'all':!![]}];}_0x30082f=_[_0xde8c('0x3c')]({},_0x30082f,_0x599ca3['options']);return db[_0xde8c('0x3e')]['find'](_0x30082f)['then'](handleEntityNotFound(_0x349d8e,null))[_0xde8c('0x21')](respondWithResult(_0x349d8e,null))['catch'](handleError(_0x349d8e,null));};exports[_0xde8c('0x45')]=function(_0x1123bf,_0x1d2e31){return db[_0xde8c('0x3e')][_0xde8c('0x45')](_0x1123bf[_0xde8c('0x46')],{})['then'](function(_0x380d35){var _0x5c8f31=_0x1123bf['user']['get']({'plain':!![]});if(!_0x5c8f31)throw new Error(_0xde8c('0x47'));if(_0x5c8f31[_0xde8c('0x48')]==='user'){var _0x649aaa=_0x380d35[_0xde8c('0x49')]({'plain':!![]});var _0x1a8c83=_0xde8c('0x22');return db[_0xde8c('0x4a')][_0xde8c('0x4b')]({'where':{'name':_0x1a8c83,'userProfileId':_0x5c8f31[_0xde8c('0x4c')]},'raw':!![]})[_0xde8c('0x21')](function(_0x20befc){if(_0x20befc&&_0x20befc['autoAssociation']===0x0){return db['UserProfileResource'][_0xde8c('0x45')]({'name':_0x649aaa[_0xde8c('0x27')],'resourceId':_0x649aaa['id'],'type':_0x20befc[_0xde8c('0x27')],'sectionId':_0x20befc['id']},{})[_0xde8c('0x21')](function(){return _0x380d35;});}else{return _0x380d35;}})['catch'](function(_0x3cd73f){logger[_0xde8c('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3cd73f);throw _0x3cd73f;});}return _0x380d35;})['then'](respondWithResult(_0x1d2e31,0xc9))['catch'](handleError(_0x1d2e31,null));};exports['update']=function(_0x23f328,_0x1de9da){if(_0x23f328[_0xde8c('0x46')]['id']){delete _0x23f328['body']['id'];}return db[_0xde8c('0x3e')][_0xde8c('0x4b')]({'where':{'id':_0x23f328['params']['id']}})['then'](handleEntityNotFound(_0x1de9da,null))[_0xde8c('0x21')](saveUpdates(_0x23f328[_0xde8c('0x46')],null))[_0xde8c('0x21')](respondWithResult(_0x1de9da,null))['catch'](handleError(_0x1de9da,null));};exports[_0xde8c('0x24')]=function(_0x37c419,_0x5dda31){return db[_0xde8c('0x3e')][_0xde8c('0x4b')]({'where':{'id':_0x37c419[_0xde8c('0x43')]['id']}})[_0xde8c('0x21')](handleEntityNotFound(_0x5dda31,null))[_0xde8c('0x21')](removeEntity(_0x5dda31,null))[_0xde8c('0x42')](handleError(_0x5dda31,null));};exports['addInterval']=function(_0x198c2a,_0x1fbcf0,_0x3c489f){if(_0x198c2a[_0xde8c('0x46')]['id']){delete _0x198c2a[_0xde8c('0x46')]['id'];}return db[_0xde8c('0x3e')][_0xde8c('0x4b')]({'where':{'id':_0x198c2a[_0xde8c('0x43')]['id']}})[_0xde8c('0x21')](handleEntityNotFound(_0x1fbcf0,null))[_0xde8c('0x21')](function(_0x1fda9c){if(_0x1fda9c){_0x198c2a[_0xde8c('0x46')][_0xde8c('0x4d')]=_0x1fda9c['id'];return db['Interval'][_0xde8c('0x45')](_0x198c2a['body']);}})[_0xde8c('0x21')](respondWithResult(_0x1fbcf0,null))['catch'](handleError(_0x1fbcf0,null));};exports['getIntervals']=function(_0xc34977,_0x163d54,_0x143a74){var _0xdb151c={};var _0x1d622c={};var _0x395b25;var _0x4a4521;return db[_0xde8c('0x3e')][_0xde8c('0x4e')]({'where':{'id':_0xc34977[_0xde8c('0x43')]['id']}})['then'](handleEntityNotFound(_0x163d54,null))[_0xde8c('0x21')](function(_0x172956){if(_0x172956){_0x395b25=_0x172956;_0x1d622c[_0xde8c('0x2e')]=_[_0xde8c('0x44')](db[_0xde8c('0x3e')][_0xde8c('0x2a')]);_0x1d622c['query']=_['keys'](_0xc34977[_0xde8c('0x2f')]);_0x1d622c[_0xde8c('0x30')]=_[_0xde8c('0x31')](_0x1d622c['model'],_0x1d622c['query']);_0xdb151c['attributes']=_['intersection'](_0x1d622c[_0xde8c('0x2e')],qs[_0xde8c('0x32')](_0xc34977[_0xde8c('0x2f')][_0xde8c('0x32')]));_0xdb151c[_0xde8c('0x33')]=_0xdb151c['attributes'][_0xde8c('0x4f')]?_0xdb151c['attributes']:_0x1d622c[_0xde8c('0x2e')];_0xdb151c[_0xde8c('0x37')]=qs[_0xde8c('0x38')](_0xc34977[_0xde8c('0x2f')][_0xde8c('0x38')]);_0xdb151c[_0xde8c('0x3b')]=qs['filters'](_[_0xde8c('0x39')](_0xc34977[_0xde8c('0x2f')],_0x1d622c[_0xde8c('0x30')]));if(_0xc34977[_0xde8c('0x2f')][_0xde8c('0x3a')]){_0xdb151c[_0xde8c('0x3b')]=_[_0xde8c('0x3c')](_0xdb151c[_0xde8c('0x3b')],{'$or':_[_0xde8c('0x29')](_0xdb151c['attributes'],function(_0x55c97a){var _0x6e90dd={};_0x6e90dd[_0x55c97a]={'$like':'%'+_0xc34977[_0xde8c('0x2f')][_0xde8c('0x3a')]+'%'};return _0x6e90dd;})});}_0xdb151c=_[_0xde8c('0x3c')]({},_0xdb151c,_0xc34977[_0xde8c('0x50')]);return _0x395b25[_0xde8c('0x51')](_0xdb151c);}})[_0xde8c('0x21')](function(_0x37d14e){if(_0x37d14e){_0x4a4521=_0x37d14e[_0xde8c('0x4f')];if(!_0xc34977[_0xde8c('0x2f')]['hasOwnProperty']('nolimit')){_0xdb151c[_0xde8c('0x36')]=qs[_0xde8c('0x36')](_0xc34977['query'][_0xde8c('0x36')]);_0xdb151c['offset']=qs[_0xde8c('0x1d')](_0xc34977[_0xde8c('0x2f')][_0xde8c('0x1d')]);}return _0x395b25[_0xde8c('0x51')](_0xdb151c);}})['then'](function(_0x3fd851){if(_0x3fd851){return _0x3fd851?{'count':_0x4a4521,'rows':_0x3fd851}:null;}})[_0xde8c('0x21')](respondWithResult(_0x163d54,null))[_0xde8c('0x42')](handleError(_0x163d54,null));};exports[_0xde8c('0x52')]=function(_0x4a68b7,_0x22d0b7,_0x2123fa){return db[_0xde8c('0x3e')][_0xde8c('0x4e')]({'where':{'id':_0x4a68b7[_0xde8c('0x43')]['id']}})[_0xde8c('0x21')](handleEntityNotFound(_0x22d0b7,null))[_0xde8c('0x21')](function(_0x948518){if(_0x948518){return db[_0xde8c('0x53')]['transaction'](function(_0x4a2e78){return db[_0xde8c('0x3e')][_0xde8c('0x24')]({'where':{'IntervalId':_0x4a68b7[_0xde8c('0x43')]['id']},'transaction':_0x4a2e78})[_0xde8c('0x21')](function(_0x32e99f){var _0x13e105=_['map'](_0x4a68b7['body'],function(_0x3d788b){delete _0x3d788b['id'];_0x3d788b[_0xde8c('0x4d')]=_0x4a68b7[_0xde8c('0x43')]['id'];return _0x3d788b;});return db[_0xde8c('0x3e')][_0xde8c('0x54')](_0x13e105,{'transaction':_0x4a2e78});});})[_0xde8c('0x21')](function(){return db[_0xde8c('0x3e')]['findAll']({'where':{'IntervalId':_0x4a68b7[_0xde8c('0x43')]['id']}});});}})['then'](respondWithResult(_0x22d0b7,null))[_0xde8c('0x42')](handleError(_0x22d0b7,null));};