35d2e0ea65f50d1fe6879010aabab6fe6b80dbcf
[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 _0x1f1d=['mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','get','UserProfileResource','destroy','stack','name','send','map','Interval','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','pick','filter','where','merge','options','catch','show','params','rawAttributes','length','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','IntervalId','getIntervals','nolimit','addIntervals','findOne','bulkCreate','findAll','eml-format','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x3f8a03,_0x319b9c){var _0x147fb2=function(_0x523c1c){while(--_0x523c1c){_0x3f8a03['push'](_0x3f8a03['shift']());}};_0x147fb2(++_0x319b9c);}(_0x1f1d,0x103));var _0xd1f1=function(_0x5d3dd5,_0x301424){_0x5d3dd5=_0x5d3dd5-0x0;var _0x1b7437=_0x1f1d[_0x5d3dd5];return _0x1b7437;};'use strict';var emlformat=require(_0xd1f1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd1f1('0x1'));var jsonpatch=require(_0xd1f1('0x2'));var rp=require(_0xd1f1('0x3'));var moment=require(_0xd1f1('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xd1f1('0x5'));var util=require(_0xd1f1('0x6'));var path=require(_0xd1f1('0x7'));var sox=require(_0xd1f1('0x8'));var csv=require(_0xd1f1('0x9'));var ejs=require(_0xd1f1('0xa'));var fs=require('fs');var fs_extra=require(_0xd1f1('0xb'));var _=require('lodash');var squel=require(_0xd1f1('0xc'));var crypto=require(_0xd1f1('0xd'));var jsforce=require(_0xd1f1('0xe'));var deskjs=require(_0xd1f1('0xf'));var toCsv=require('to-csv');var querystring=require(_0xd1f1('0x10'));var Papa=require(_0xd1f1('0x11'));var Redis=require(_0xd1f1('0x12'));var authService=require(_0xd1f1('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xd1f1('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd1f1('0x15'))(_0xd1f1('0x16'));var utils=require('../../config/utils');var config=require(_0xd1f1('0x17'));var licenseUtil=require(_0xd1f1('0x18'));var db=require(_0xd1f1('0x19'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x4c53fc,_0x51cc31){_0x51cc31=_0x51cc31||0xcc;return function(_0x406f23){if(_0x406f23){return _0x4c53fc[_0xd1f1('0x1a')](_0x51cc31);}return _0x4c53fc[_0xd1f1('0x1b')](_0x51cc31)[_0xd1f1('0x1c')]();};}function respondWithResult(_0x2542a2,_0x5e3296){_0x5e3296=_0x5e3296||0xc8;return function(_0x35414e){if(_0x35414e){return _0x2542a2[_0xd1f1('0x1b')](_0x5e3296)[_0xd1f1('0x1d')](_0x35414e);}};}function respondWithFilteredResult(_0x28bbae,_0x2dbdfe){return function(_0x595e34){if(_0x595e34){var _0x5404d4=typeof _0x2dbdfe[_0xd1f1('0x1e')]===_0xd1f1('0x1f')&&typeof _0x2dbdfe[_0xd1f1('0x20')]===_0xd1f1('0x1f');var _0x10783e=_0x595e34[_0xd1f1('0x21')];var _0x1f8a7b=_0x5404d4?0x0:_0x2dbdfe[_0xd1f1('0x1e')];var _0x43fc6a=_0x5404d4?_0x595e34[_0xd1f1('0x21')]:_0x2dbdfe[_0xd1f1('0x1e')]+_0x2dbdfe[_0xd1f1('0x20')];var _0x5e86cd;if(_0x43fc6a>=_0x10783e){_0x43fc6a=_0x10783e;_0x5e86cd=0xc8;}else{_0x5e86cd=0xce;}_0x28bbae[_0xd1f1('0x1b')](_0x5e86cd);return _0x28bbae[_0xd1f1('0x22')](_0xd1f1('0x23'),_0x1f8a7b+'-'+_0x43fc6a+'/'+_0x10783e)['json'](_0x595e34);}return null;};}function patchUpdates(_0x654082){return function(_0x221aba){try{jsonpatch['apply'](_0x221aba,_0x654082,!![]);}catch(_0x4978ab){return BPromise[_0xd1f1('0x24')](_0x4978ab);}return _0x221aba[_0xd1f1('0x25')]();};}function saveUpdates(_0x180ef7,_0x121b27){return function(_0x4be92b){if(_0x4be92b){return _0x4be92b[_0xd1f1('0x26')](_0x180ef7)[_0xd1f1('0x27')](function(_0x5a32cf){return _0x5a32cf;});}return null;};}function removeEntity(_0x43b8a8,_0x3ca42a){return function(_0x2fd1e1){if(_0x2fd1e1){return _0x2fd1e1['destroy']()[_0xd1f1('0x27')](function(){var _0x44e775=_0x2fd1e1[_0xd1f1('0x28')]({'plain':!![]});var _0x486e72='Intervals';return db[_0xd1f1('0x29')][_0xd1f1('0x2a')]({'where':{'type':_0x486e72,'resourceId':_0x44e775['id']}})[_0xd1f1('0x27')](function(){return _0x2fd1e1;});})[_0xd1f1('0x27')](function(){_0x43b8a8['status'](0xcc)[_0xd1f1('0x1c')]();});}};}function handleEntityNotFound(_0x23aa17,_0x44ec58){return function(_0x402f51){if(!_0x402f51){_0x23aa17[_0xd1f1('0x1a')](0x194);}return _0x402f51;};}function handleError(_0x344ca8,_0x55e51e){_0x55e51e=_0x55e51e||0x1f4;return function(_0x4ae1ee){logger['error'](_0x4ae1ee[_0xd1f1('0x2b')]);if(_0x4ae1ee[_0xd1f1('0x2c')]){delete _0x4ae1ee[_0xd1f1('0x2c')];}_0x344ca8['status'](_0x55e51e)[_0xd1f1('0x2d')](_0x4ae1ee);};}exports['index']=function(_0x2027a2,_0x5278d5){var _0x57dd6b={},_0x44f247={},_0x1a5234={'count':0x0,'rows':[]};var _0x4550b0=_[_0xd1f1('0x2e')](db[_0xd1f1('0x2f')]['rawAttributes'],function(_0x5a8600){return{'name':_0x5a8600[_0xd1f1('0x30')],'type':_0x5a8600[_0xd1f1('0x31')][_0xd1f1('0x32')]};});_0x44f247[_0xd1f1('0x33')]=_[_0xd1f1('0x2e')](_0x4550b0,_0xd1f1('0x2c'));_0x44f247[_0xd1f1('0x34')]=_[_0xd1f1('0x35')](_0x2027a2[_0xd1f1('0x34')]);_0x44f247[_0xd1f1('0x36')]=_[_0xd1f1('0x37')](_0x44f247['model'],_0x44f247[_0xd1f1('0x34')]);_0x57dd6b[_0xd1f1('0x38')]=_[_0xd1f1('0x37')](_0x44f247[_0xd1f1('0x33')],qs['fields'](_0x2027a2[_0xd1f1('0x34')][_0xd1f1('0x39')]));_0x57dd6b[_0xd1f1('0x38')]=_0x57dd6b[_0xd1f1('0x38')]['length']?_0x57dd6b[_0xd1f1('0x38')]:_0x44f247[_0xd1f1('0x33')];if(!_0x2027a2[_0xd1f1('0x34')][_0xd1f1('0x3a')]('nolimit')){_0x57dd6b[_0xd1f1('0x20')]=qs[_0xd1f1('0x20')](_0x2027a2[_0xd1f1('0x34')][_0xd1f1('0x20')]);_0x57dd6b[_0xd1f1('0x1e')]=qs[_0xd1f1('0x1e')](_0x2027a2[_0xd1f1('0x34')][_0xd1f1('0x1e')]);}_0x57dd6b[_0xd1f1('0x3b')]=qs[_0xd1f1('0x3c')](_0x2027a2[_0xd1f1('0x34')][_0xd1f1('0x3c')]);_0x57dd6b['where']=qs[_0xd1f1('0x36')](_[_0xd1f1('0x3d')](_0x2027a2[_0xd1f1('0x34')],_0x44f247['filters']),_0x4550b0);if(_0x2027a2[_0xd1f1('0x34')][_0xd1f1('0x3e')]){_0x57dd6b[_0xd1f1('0x3f')]=_['merge'](_0x57dd6b['where'],{'$or':_['map'](_0x4550b0,function(_0x1ed2d7){if(_0x1ed2d7[_0xd1f1('0x31')]!=='VIRTUAL'){var _0x40ac70={};_0x40ac70[_0x1ed2d7[_0xd1f1('0x2c')]]={'$like':'%'+_0x2027a2[_0xd1f1('0x34')]['filter']+'%'};return _0x40ac70;}})});}_0x57dd6b=_[_0xd1f1('0x40')]({},_0x57dd6b,_0x2027a2[_0xd1f1('0x41')]);var _0x5c0afa={'where':_0x57dd6b[_0xd1f1('0x3f')]};return db['Interval'][_0xd1f1('0x21')](_0x5c0afa)[_0xd1f1('0x27')](function(_0x3a11fe){_0x1a5234[_0xd1f1('0x21')]=_0x3a11fe;if(_0x2027a2[_0xd1f1('0x34')]['includeAll']){_0x57dd6b['include']=[{'all':!![]}];}return db[_0xd1f1('0x2f')]['findAll'](_0x57dd6b);})['then'](function(_0x5aea71){_0x1a5234['rows']=_0x5aea71;return _0x1a5234;})['then'](respondWithFilteredResult(_0x5278d5,_0x57dd6b))[_0xd1f1('0x42')](handleError(_0x5278d5,null));};exports[_0xd1f1('0x43')]=function(_0x324cf7,_0x59a86f){var _0x1dd98b={'raw':!![],'where':{'id':_0x324cf7[_0xd1f1('0x44')]['id']}},_0x4b15fe={};_0x4b15fe[_0xd1f1('0x33')]=_['keys'](db[_0xd1f1('0x2f')][_0xd1f1('0x45')]);_0x4b15fe[_0xd1f1('0x34')]=_['keys'](_0x324cf7['query']);_0x4b15fe[_0xd1f1('0x36')]=_[_0xd1f1('0x37')](_0x4b15fe['model'],_0x4b15fe['query']);_0x1dd98b[_0xd1f1('0x38')]=_[_0xd1f1('0x37')](_0x4b15fe['model'],qs[_0xd1f1('0x39')](_0x324cf7[_0xd1f1('0x34')][_0xd1f1('0x39')]));_0x1dd98b[_0xd1f1('0x38')]=_0x1dd98b[_0xd1f1('0x38')][_0xd1f1('0x46')]?_0x1dd98b[_0xd1f1('0x38')]:_0x4b15fe[_0xd1f1('0x33')];if(_0x324cf7[_0xd1f1('0x34')]['includeAll']){_0x1dd98b[_0xd1f1('0x47')]=[{'all':!![]}];}_0x1dd98b=_[_0xd1f1('0x40')]({},_0x1dd98b,_0x324cf7['options']);return db[_0xd1f1('0x2f')][_0xd1f1('0x48')](_0x1dd98b)['then'](handleEntityNotFound(_0x59a86f,null))[_0xd1f1('0x27')](respondWithResult(_0x59a86f,null))[_0xd1f1('0x42')](handleError(_0x59a86f,null));};exports['create']=function(_0x5cef05,_0xa7f728){return db[_0xd1f1('0x2f')][_0xd1f1('0x49')](_0x5cef05[_0xd1f1('0x4a')],{})[_0xd1f1('0x27')](function(_0xbef3b0){var _0x5f4af4=_0x5cef05[_0xd1f1('0x4b')]['get']({'plain':!![]});if(!_0x5f4af4)throw new Error(_0xd1f1('0x4c'));if(_0x5f4af4['role']==='user'){var _0x310d22=_0xbef3b0['get']({'plain':!![]});var _0x55e691='Intervals';return db[_0xd1f1('0x4d')]['find']({'where':{'name':_0x55e691,'userProfileId':_0x5f4af4[_0xd1f1('0x4e')]},'raw':!![]})[_0xd1f1('0x27')](function(_0x55d7f3){if(_0x55d7f3&&_0x55d7f3[_0xd1f1('0x4f')]===0x0){return db['UserProfileResource'][_0xd1f1('0x49')]({'name':_0x310d22[_0xd1f1('0x2c')],'resourceId':_0x310d22['id'],'type':_0x55d7f3['name'],'sectionId':_0x55d7f3['id']},{})[_0xd1f1('0x27')](function(){return _0xbef3b0;});}else{return _0xbef3b0;}})[_0xd1f1('0x42')](function(_0x1105bf){logger['error'](_0xd1f1('0x50'),_0x1105bf);throw _0x1105bf;});}return _0xbef3b0;})[_0xd1f1('0x27')](respondWithResult(_0xa7f728,0xc9))['catch'](handleError(_0xa7f728,null));};exports[_0xd1f1('0x26')]=function(_0x50088c,_0x89b609){if(_0x50088c[_0xd1f1('0x4a')]['id']){delete _0x50088c['body']['id'];}return db['Interval']['find']({'where':{'id':_0x50088c['params']['id']}})[_0xd1f1('0x27')](handleEntityNotFound(_0x89b609,null))[_0xd1f1('0x27')](saveUpdates(_0x50088c[_0xd1f1('0x4a')],null))[_0xd1f1('0x27')](respondWithResult(_0x89b609,null))[_0xd1f1('0x42')](handleError(_0x89b609,null));};exports['destroy']=function(_0x3c3136,_0x39b31a){return db[_0xd1f1('0x2f')][_0xd1f1('0x48')]({'where':{'id':_0x3c3136['params']['id']}})['then'](handleEntityNotFound(_0x39b31a,null))['then'](removeEntity(_0x39b31a,null))[_0xd1f1('0x42')](handleError(_0x39b31a,null));};exports['addInterval']=function(_0x130ea8,_0x2d721e,_0x32ee50){if(_0x130ea8[_0xd1f1('0x4a')]['id']){delete _0x130ea8['body']['id'];}return db[_0xd1f1('0x2f')]['find']({'where':{'id':_0x130ea8[_0xd1f1('0x44')]['id']}})['then'](handleEntityNotFound(_0x2d721e,null))[_0xd1f1('0x27')](function(_0x2d003a){if(_0x2d003a){_0x130ea8[_0xd1f1('0x4a')][_0xd1f1('0x51')]=_0x2d003a['id'];return db[_0xd1f1('0x2f')]['create'](_0x130ea8[_0xd1f1('0x4a')]);}})[_0xd1f1('0x27')](respondWithResult(_0x2d721e,null))[_0xd1f1('0x42')](handleError(_0x2d721e,null));};exports[_0xd1f1('0x52')]=function(_0x195972,_0x35eb82,_0x410069){var _0x18c8c9={};var _0x276b0f={};var _0x105b78;var _0x2959d8;return db['Interval']['findOne']({'where':{'id':_0x195972[_0xd1f1('0x44')]['id']}})['then'](handleEntityNotFound(_0x35eb82,null))[_0xd1f1('0x27')](function(_0x2fc8f9){if(_0x2fc8f9){_0x105b78=_0x2fc8f9;_0x276b0f[_0xd1f1('0x33')]=_[_0xd1f1('0x35')](db['Interval']['rawAttributes']);_0x276b0f['query']=_[_0xd1f1('0x35')](_0x195972[_0xd1f1('0x34')]);_0x276b0f[_0xd1f1('0x36')]=_[_0xd1f1('0x37')](_0x276b0f['model'],_0x276b0f[_0xd1f1('0x34')]);_0x18c8c9[_0xd1f1('0x38')]=_['intersection'](_0x276b0f[_0xd1f1('0x33')],qs[_0xd1f1('0x39')](_0x195972[_0xd1f1('0x34')]['fields']));_0x18c8c9['attributes']=_0x18c8c9[_0xd1f1('0x38')][_0xd1f1('0x46')]?_0x18c8c9[_0xd1f1('0x38')]:_0x276b0f[_0xd1f1('0x33')];_0x18c8c9[_0xd1f1('0x3b')]=qs['sort'](_0x195972[_0xd1f1('0x34')][_0xd1f1('0x3c')]);_0x18c8c9[_0xd1f1('0x3f')]=qs[_0xd1f1('0x36')](_[_0xd1f1('0x3d')](_0x195972[_0xd1f1('0x34')],_0x276b0f[_0xd1f1('0x36')]));if(_0x195972[_0xd1f1('0x34')][_0xd1f1('0x3e')]){_0x18c8c9['where']=_['merge'](_0x18c8c9[_0xd1f1('0x3f')],{'$or':_[_0xd1f1('0x2e')](_0x18c8c9[_0xd1f1('0x38')],function(_0x2a5fbb){var _0xba9ba1={};_0xba9ba1[_0x2a5fbb]={'$like':'%'+_0x195972['query'][_0xd1f1('0x3e')]+'%'};return _0xba9ba1;})});}_0x18c8c9=_['merge']({},_0x18c8c9,_0x195972[_0xd1f1('0x41')]);return _0x105b78['getIntervals'](_0x18c8c9);}})['then'](function(_0x559ad4){if(_0x559ad4){_0x2959d8=_0x559ad4['length'];if(!_0x195972[_0xd1f1('0x34')][_0xd1f1('0x3a')](_0xd1f1('0x53'))){_0x18c8c9[_0xd1f1('0x20')]=qs[_0xd1f1('0x20')](_0x195972[_0xd1f1('0x34')][_0xd1f1('0x20')]);_0x18c8c9[_0xd1f1('0x1e')]=qs[_0xd1f1('0x1e')](_0x195972[_0xd1f1('0x34')][_0xd1f1('0x1e')]);}return _0x105b78[_0xd1f1('0x52')](_0x18c8c9);}})[_0xd1f1('0x27')](function(_0x23e46a){if(_0x23e46a){return _0x23e46a?{'count':_0x2959d8,'rows':_0x23e46a}:null;}})[_0xd1f1('0x27')](respondWithResult(_0x35eb82,null))['catch'](handleError(_0x35eb82,null));};exports[_0xd1f1('0x54')]=function(_0x5c0eeb,_0x4b3709,_0x4cd048){return db[_0xd1f1('0x2f')][_0xd1f1('0x55')]({'where':{'id':_0x5c0eeb[_0xd1f1('0x44')]['id']}})['then'](handleEntityNotFound(_0x4b3709,null))[_0xd1f1('0x27')](function(_0x4c049b){if(_0x4c049b){return db['sequelize']['transaction'](function(_0x151f98){return db[_0xd1f1('0x2f')][_0xd1f1('0x2a')]({'where':{'IntervalId':_0x5c0eeb[_0xd1f1('0x44')]['id']},'transaction':_0x151f98})['then'](function(_0x55603c){var _0x5d223f=_[_0xd1f1('0x2e')](_0x5c0eeb[_0xd1f1('0x4a')],function(_0x35cd6f){delete _0x35cd6f['id'];_0x35cd6f[_0xd1f1('0x51')]=_0x5c0eeb[_0xd1f1('0x44')]['id'];return _0x35cd6f;});return db['Interval'][_0xd1f1('0x56')](_0x5d223f,{'transaction':_0x151f98});});})[_0xd1f1('0x27')](function(){return db[_0xd1f1('0x2f')][_0xd1f1('0x57')]({'where':{'IntervalId':_0x5c0eeb[_0xd1f1('0x44')]['id']}});});}})[_0xd1f1('0x27')](respondWithResult(_0x4b3709,null))[_0xd1f1('0x42')](handleError(_0x4b3709,null));};