4e250c1e97fe92d694f55b95f82273c3e60cb896
[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 _0x82b7=['params','keys','includeAll','find','create','user','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addInterval','IntervalId','getIntervals','findOne','addIntervals','transaction','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','update','then','destroy','get','Intervals','error','stack','name','send','index','map','Interval','rawAttributes','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','VIRTUAL','options','include','findAll','rows','catch','show'];(function(_0x2a05bf,_0x55e3a4){var _0x38a62e=function(_0x28d868){while(--_0x28d868){_0x2a05bf['push'](_0x2a05bf['shift']());}};_0x38a62e(++_0x55e3a4);}(_0x82b7,0x1cc));var _0x782b=function(_0x470188,_0x4f5731){_0x470188=_0x470188-0x0;var _0x4b42b8=_0x82b7[_0x470188];return _0x4b42b8;};'use strict';var emlformat=require(_0x782b('0x0'));var rimraf=require(_0x782b('0x1'));var zipdir=require(_0x782b('0x2'));var jsonpatch=require(_0x782b('0x3'));var rp=require(_0x782b('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x782b('0x5'));var util=require(_0x782b('0x6'));var path=require(_0x782b('0x7'));var sox=require(_0x782b('0x8'));var csv=require(_0x782b('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x782b('0xa'));var _=require(_0x782b('0xb'));var squel=require(_0x782b('0xc'));var crypto=require(_0x782b('0xd'));var jsforce=require(_0x782b('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x782b('0x9'));var querystring=require(_0x782b('0xf'));var Papa=require(_0x782b('0x10'));var Redis=require(_0x782b('0x11'));var authService=require(_0x782b('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x782b('0x13'));var hardwareService=require(_0x782b('0x14'));var logger=require(_0x782b('0x15'))(_0x782b('0x16'));var utils=require(_0x782b('0x17'));var config=require(_0x782b('0x18'));var licenseUtil=require(_0x782b('0x19'));var db=require(_0x782b('0x1a'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x4d9602,_0x4833ff){_0x4833ff=_0x4833ff||0xcc;return function(_0x5e2d85){if(_0x5e2d85){return _0x4d9602[_0x782b('0x1b')](_0x4833ff);}return _0x4d9602[_0x782b('0x1c')](_0x4833ff)['end']();};}function respondWithResult(_0x5d18ca,_0x45d059){_0x45d059=_0x45d059||0xc8;return function(_0x55bd28){if(_0x55bd28){return _0x5d18ca[_0x782b('0x1c')](_0x45d059)[_0x782b('0x1d')](_0x55bd28);}};}function respondWithFilteredResult(_0x1a8cca,_0x3b1c9c){return function(_0x8a3cbd){if(_0x8a3cbd){var _0x492eac=typeof _0x3b1c9c[_0x782b('0x1e')]===_0x782b('0x1f')&&typeof _0x3b1c9c[_0x782b('0x20')]==='undefined';var _0xcf08ca=_0x8a3cbd[_0x782b('0x21')];var _0x370ddf=_0x492eac?0x0:_0x3b1c9c[_0x782b('0x1e')];var _0x21df8e=_0x492eac?_0x8a3cbd[_0x782b('0x21')]:_0x3b1c9c[_0x782b('0x1e')]+_0x3b1c9c[_0x782b('0x20')];var _0x49375c;if(_0x21df8e>=_0xcf08ca){_0x21df8e=_0xcf08ca;_0x49375c=0xc8;}else{_0x49375c=0xce;}_0x1a8cca['status'](_0x49375c);return _0x1a8cca[_0x782b('0x22')](_0x782b('0x23'),_0x370ddf+'-'+_0x21df8e+'/'+_0xcf08ca)[_0x782b('0x1d')](_0x8a3cbd);}return null;};}function patchUpdates(_0x4cd1bf){return function(_0x4cbfb6){try{jsonpatch[_0x782b('0x24')](_0x4cbfb6,_0x4cd1bf,!![]);}catch(_0x3eec7b){return BPromise['reject'](_0x3eec7b);}return _0x4cbfb6['save']();};}function saveUpdates(_0x3c3f96,_0x414bf0){return function(_0x27631c){if(_0x27631c){return _0x27631c[_0x782b('0x25')](_0x3c3f96)[_0x782b('0x26')](function(_0x36bdb6){return _0x36bdb6;});}return null;};}function removeEntity(_0x101dcb,_0x1c5d56){return function(_0x31c997){if(_0x31c997){return _0x31c997[_0x782b('0x27')]()[_0x782b('0x26')](function(){var _0x3f5564=_0x31c997[_0x782b('0x28')]({'plain':!![]});var _0x15c27f=_0x782b('0x29');return db['UserProfileResource'][_0x782b('0x27')]({'where':{'type':_0x15c27f,'resourceId':_0x3f5564['id']}})[_0x782b('0x26')](function(){return _0x31c997;});})[_0x782b('0x26')](function(){_0x101dcb[_0x782b('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2163b3,_0x58e4f3){return function(_0x205f95){if(!_0x205f95){_0x2163b3[_0x782b('0x1b')](0x194);}return _0x205f95;};}function handleError(_0x59a170,_0xc24269){_0xc24269=_0xc24269||0x1f4;return function(_0x1870e1){logger[_0x782b('0x2a')](_0x1870e1[_0x782b('0x2b')]);if(_0x1870e1[_0x782b('0x2c')]){delete _0x1870e1[_0x782b('0x2c')];}_0x59a170[_0x782b('0x1c')](_0xc24269)[_0x782b('0x2d')](_0x1870e1);};}exports[_0x782b('0x2e')]=function(_0x1184f0,_0x1789cf){var _0x514628={},_0x1bb7ba={},_0x7d8c46={'count':0x0,'rows':[]};var _0x1c688c=_[_0x782b('0x2f')](db[_0x782b('0x30')][_0x782b('0x31')],function(_0x2ab44b){return{'name':_0x2ab44b['fieldName'],'type':_0x2ab44b['type'][_0x782b('0x32')]};});_0x1bb7ba[_0x782b('0x33')]=_['map'](_0x1c688c,'name');_0x1bb7ba['query']=_['keys'](_0x1184f0[_0x782b('0x34')]);_0x1bb7ba[_0x782b('0x35')]=_[_0x782b('0x36')](_0x1bb7ba[_0x782b('0x33')],_0x1bb7ba['query']);_0x514628['attributes']=_[_0x782b('0x36')](_0x1bb7ba[_0x782b('0x33')],qs[_0x782b('0x37')](_0x1184f0[_0x782b('0x34')]['fields']));_0x514628[_0x782b('0x38')]=_0x514628[_0x782b('0x38')][_0x782b('0x39')]?_0x514628[_0x782b('0x38')]:_0x1bb7ba['model'];if(!_0x1184f0[_0x782b('0x34')][_0x782b('0x3a')](_0x782b('0x3b'))){_0x514628[_0x782b('0x20')]=qs[_0x782b('0x20')](_0x1184f0[_0x782b('0x34')][_0x782b('0x20')]);_0x514628[_0x782b('0x1e')]=qs[_0x782b('0x1e')](_0x1184f0[_0x782b('0x34')][_0x782b('0x1e')]);}_0x514628[_0x782b('0x3c')]=qs[_0x782b('0x3d')](_0x1184f0[_0x782b('0x34')][_0x782b('0x3d')]);_0x514628['where']=qs[_0x782b('0x35')](_[_0x782b('0x3e')](_0x1184f0[_0x782b('0x34')],_0x1bb7ba['filters']),_0x1c688c);if(_0x1184f0[_0x782b('0x34')][_0x782b('0x3f')]){_0x514628[_0x782b('0x40')]=_[_0x782b('0x41')](_0x514628[_0x782b('0x40')],{'$or':_['map'](_0x1c688c,function(_0x22867e){if(_0x22867e[_0x782b('0x42')]!==_0x782b('0x43')){var _0x389979={};_0x389979[_0x22867e[_0x782b('0x2c')]]={'$like':'%'+_0x1184f0[_0x782b('0x34')][_0x782b('0x3f')]+'%'};return _0x389979;}})});}_0x514628=_[_0x782b('0x41')]({},_0x514628,_0x1184f0[_0x782b('0x44')]);var _0x45df73={'where':_0x514628[_0x782b('0x40')]};return db[_0x782b('0x30')][_0x782b('0x21')](_0x45df73)['then'](function(_0x441cd9){_0x7d8c46['count']=_0x441cd9;if(_0x1184f0['query']['includeAll']){_0x514628[_0x782b('0x45')]=[{'all':!![]}];}return db[_0x782b('0x30')][_0x782b('0x46')](_0x514628);})[_0x782b('0x26')](function(_0x2aa6a3){_0x7d8c46[_0x782b('0x47')]=_0x2aa6a3;return _0x7d8c46;})[_0x782b('0x26')](respondWithFilteredResult(_0x1789cf,_0x514628))[_0x782b('0x48')](handleError(_0x1789cf,null));};exports[_0x782b('0x49')]=function(_0x20770e,_0x169cb9){var _0x5a7c4f={'raw':!![],'where':{'id':_0x20770e[_0x782b('0x4a')]['id']}},_0xd61de2={};_0xd61de2[_0x782b('0x33')]=_[_0x782b('0x4b')](db[_0x782b('0x30')][_0x782b('0x31')]);_0xd61de2[_0x782b('0x34')]=_[_0x782b('0x4b')](_0x20770e['query']);_0xd61de2[_0x782b('0x35')]=_[_0x782b('0x36')](_0xd61de2[_0x782b('0x33')],_0xd61de2[_0x782b('0x34')]);_0x5a7c4f[_0x782b('0x38')]=_[_0x782b('0x36')](_0xd61de2[_0x782b('0x33')],qs[_0x782b('0x37')](_0x20770e[_0x782b('0x34')][_0x782b('0x37')]));_0x5a7c4f[_0x782b('0x38')]=_0x5a7c4f[_0x782b('0x38')]['length']?_0x5a7c4f[_0x782b('0x38')]:_0xd61de2[_0x782b('0x33')];if(_0x20770e[_0x782b('0x34')][_0x782b('0x4c')]){_0x5a7c4f[_0x782b('0x45')]=[{'all':!![]}];}_0x5a7c4f=_[_0x782b('0x41')]({},_0x5a7c4f,_0x20770e[_0x782b('0x44')]);return db[_0x782b('0x30')][_0x782b('0x4d')](_0x5a7c4f)['then'](handleEntityNotFound(_0x169cb9,null))['then'](respondWithResult(_0x169cb9,null))[_0x782b('0x48')](handleError(_0x169cb9,null));};exports[_0x782b('0x4e')]=function(_0x388c39,_0x3248ac){return db[_0x782b('0x30')][_0x782b('0x4e')](_0x388c39['body'],{})['then'](function(_0x591851){var _0x4b3868=_0x388c39['user'][_0x782b('0x28')]({'plain':!![]});if(!_0x4b3868)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4b3868['role']===_0x782b('0x4f')){var _0x347e26=_0x591851['get']({'plain':!![]});var _0x6ad556=_0x782b('0x29');return db['UserProfileSection'][_0x782b('0x4d')]({'where':{'name':_0x6ad556,'userProfileId':_0x4b3868[_0x782b('0x50')]},'raw':!![]})[_0x782b('0x26')](function(_0x11e6a9){if(_0x11e6a9&&_0x11e6a9['autoAssociation']===0x0){return db['UserProfileResource']['create']({'name':_0x347e26[_0x782b('0x2c')],'resourceId':_0x347e26['id'],'type':_0x11e6a9['name'],'sectionId':_0x11e6a9['id']},{})[_0x782b('0x26')](function(){return _0x591851;});}else{return _0x591851;}})[_0x782b('0x48')](function(_0xc72b48){logger[_0x782b('0x2a')](_0x782b('0x51'),_0xc72b48);throw _0xc72b48;});}return _0x591851;})[_0x782b('0x26')](respondWithResult(_0x3248ac,0xc9))[_0x782b('0x48')](handleError(_0x3248ac,null));};exports[_0x782b('0x25')]=function(_0x1ad9c9,_0x550795){if(_0x1ad9c9[_0x782b('0x52')]['id']){delete _0x1ad9c9[_0x782b('0x52')]['id'];}return db[_0x782b('0x30')][_0x782b('0x4d')]({'where':{'id':_0x1ad9c9['params']['id']}})[_0x782b('0x26')](handleEntityNotFound(_0x550795,null))['then'](saveUpdates(_0x1ad9c9[_0x782b('0x52')],null))['then'](respondWithResult(_0x550795,null))[_0x782b('0x48')](handleError(_0x550795,null));};exports[_0x782b('0x27')]=function(_0x5cd520,_0x181200){return db['Interval'][_0x782b('0x4d')]({'where':{'id':_0x5cd520[_0x782b('0x4a')]['id']}})[_0x782b('0x26')](handleEntityNotFound(_0x181200,null))[_0x782b('0x26')](removeEntity(_0x181200,null))[_0x782b('0x48')](handleError(_0x181200,null));};exports[_0x782b('0x53')]=function(_0x36d156,_0x13cd2a,_0x21cd2f){if(_0x36d156[_0x782b('0x52')]['id']){delete _0x36d156[_0x782b('0x52')]['id'];}return db[_0x782b('0x30')][_0x782b('0x4d')]({'where':{'id':_0x36d156[_0x782b('0x4a')]['id']}})[_0x782b('0x26')](handleEntityNotFound(_0x13cd2a,null))['then'](function(_0x1942ec){if(_0x1942ec){_0x36d156['body'][_0x782b('0x54')]=_0x1942ec['id'];return db[_0x782b('0x30')]['create'](_0x36d156['body']);}})['then'](respondWithResult(_0x13cd2a,null))[_0x782b('0x48')](handleError(_0x13cd2a,null));};exports[_0x782b('0x55')]=function(_0x385022,_0x119c27,_0x252040){var _0x5b37c0={};var _0x5eeae6={};var _0x560928;var _0x312678;return db['Interval'][_0x782b('0x56')]({'where':{'id':_0x385022[_0x782b('0x4a')]['id']}})[_0x782b('0x26')](handleEntityNotFound(_0x119c27,null))[_0x782b('0x26')](function(_0x49c4ea){if(_0x49c4ea){_0x560928=_0x49c4ea;_0x5eeae6['model']=_[_0x782b('0x4b')](db[_0x782b('0x30')][_0x782b('0x31')]);_0x5eeae6[_0x782b('0x34')]=_[_0x782b('0x4b')](_0x385022['query']);_0x5eeae6[_0x782b('0x35')]=_[_0x782b('0x36')](_0x5eeae6[_0x782b('0x33')],_0x5eeae6[_0x782b('0x34')]);_0x5b37c0[_0x782b('0x38')]=_[_0x782b('0x36')](_0x5eeae6['model'],qs[_0x782b('0x37')](_0x385022['query'][_0x782b('0x37')]));_0x5b37c0['attributes']=_0x5b37c0[_0x782b('0x38')]['length']?_0x5b37c0[_0x782b('0x38')]:_0x5eeae6[_0x782b('0x33')];_0x5b37c0[_0x782b('0x3c')]=qs[_0x782b('0x3d')](_0x385022[_0x782b('0x34')][_0x782b('0x3d')]);_0x5b37c0[_0x782b('0x40')]=qs[_0x782b('0x35')](_['pick'](_0x385022[_0x782b('0x34')],_0x5eeae6[_0x782b('0x35')]));if(_0x385022[_0x782b('0x34')]['filter']){_0x5b37c0['where']=_[_0x782b('0x41')](_0x5b37c0[_0x782b('0x40')],{'$or':_['map'](_0x5b37c0[_0x782b('0x38')],function(_0x58f29e){var _0xb2e6fd={};_0xb2e6fd[_0x58f29e]={'$like':'%'+_0x385022[_0x782b('0x34')][_0x782b('0x3f')]+'%'};return _0xb2e6fd;})});}_0x5b37c0=_[_0x782b('0x41')]({},_0x5b37c0,_0x385022[_0x782b('0x44')]);return _0x560928['getIntervals'](_0x5b37c0);}})[_0x782b('0x26')](function(_0x5f34be){if(_0x5f34be){_0x312678=_0x5f34be[_0x782b('0x39')];if(!_0x385022[_0x782b('0x34')][_0x782b('0x3a')](_0x782b('0x3b'))){_0x5b37c0[_0x782b('0x20')]=qs['limit'](_0x385022['query']['limit']);_0x5b37c0[_0x782b('0x1e')]=qs['offset'](_0x385022[_0x782b('0x34')][_0x782b('0x1e')]);}return _0x560928[_0x782b('0x55')](_0x5b37c0);}})['then'](function(_0x29a3d3){if(_0x29a3d3){return _0x29a3d3?{'count':_0x312678,'rows':_0x29a3d3}:null;}})['then'](respondWithResult(_0x119c27,null))[_0x782b('0x48')](handleError(_0x119c27,null));};exports[_0x782b('0x57')]=function(_0x3a094f,_0x4ac5c5,_0x2a7d40){return db['Interval']['findOne']({'where':{'id':_0x3a094f[_0x782b('0x4a')]['id']}})[_0x782b('0x26')](handleEntityNotFound(_0x4ac5c5,null))[_0x782b('0x26')](function(_0x14a853){if(_0x14a853){return db['sequelize'][_0x782b('0x58')](function(_0x20eb9c){return db[_0x782b('0x30')][_0x782b('0x27')]({'where':{'IntervalId':_0x3a094f[_0x782b('0x4a')]['id']},'transaction':_0x20eb9c})[_0x782b('0x26')](function(_0x306347){var _0x13d6a8=_[_0x782b('0x2f')](_0x3a094f[_0x782b('0x52')],function(_0x593c69){delete _0x593c69['id'];_0x593c69[_0x782b('0x54')]=_0x3a094f[_0x782b('0x4a')]['id'];return _0x593c69;});return db['Interval']['bulkCreate'](_0x13d6a8,{'transaction':_0x20eb9c});});})[_0x782b('0x26')](function(){return db[_0x782b('0x30')][_0x782b('0x46')]({'where':{'IntervalId':_0x3a094f[_0x782b('0x4a')]['id']}});});}})[_0x782b('0x26')](respondWithResult(_0x4ac5c5,null))['catch'](handleError(_0x4ac5c5,null));};