7c2437be566ea4309c0c1c1f92c0173c4f8ce39f
[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 _0x9259=['get','Intervals','UserProfileResource','error','stack','name','send','Interval','rawAttributes','fieldName','key','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','sort','where','pick','type','VIRTUAL','filter','options','includeAll','include','findAll','then','rows','catch','show','params','merge','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','addInterval','getIntervals','findOne','order','addIntervals','transaction','IntervalId','html-pdf','eml-format','rimraf','request-promise','moment','bluebird','util','path','lodash','squel','crypto','jsforce','to-csv','querystring','ioredis','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../components/extensions/rewrite','sendStatus','json','count','offset','limit','status','Content-Range','apply','save','update','destroy'];(function(_0x4086b9,_0x482b49){var _0x1631fb=function(_0x18e97d){while(--_0x18e97d){_0x4086b9['push'](_0x4086b9['shift']());}};_0x1631fb(++_0x482b49);}(_0x9259,0x137));var _0x9925=function(_0x200aa5,_0x197802){_0x200aa5=_0x200aa5-0x0;var _0x458200=_0x9259[_0x200aa5];return _0x458200;};'use strict';var pdf=require(_0x9925('0x0'));var emlformat=require(_0x9925('0x1'));var rimraf=require(_0x9925('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x9925('0x3'));var moment=require(_0x9925('0x4'));var BPromise=require(_0x9925('0x5'));var Mustache=require('mustache');var util=require(_0x9925('0x6'));var path=require(_0x9925('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0x9925('0x8'));var squel=require(_0x9925('0x9'));var crypto=require(_0x9925('0xa'));var jsforce=require(_0x9925('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x9925('0xc'));var querystring=require(_0x9925('0xd'));var Papa=require('papaparse');var Redis=require(_0x9925('0xe'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x9925('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9925('0x10'))(_0x9925('0x11'));var utils=require(_0x9925('0x12'));var config=require(_0x9925('0x13'));var licenseUtil=require(_0x9925('0x14'));var db=require('../../mysqldb')['db'];var extensions=require(_0x9925('0x15'));function respondWithStatusCode(_0x1c12d9,_0x31d730){_0x31d730=_0x31d730||0xcc;return function(_0x23abab){if(_0x23abab){return _0x1c12d9[_0x9925('0x16')](_0x31d730);}return _0x1c12d9['status'](_0x31d730)['end']();};}function respondWithResult(_0x2b27a5,_0x3de948){_0x3de948=_0x3de948||0xc8;return function(_0x31d2fd){if(_0x31d2fd){return _0x2b27a5['status'](_0x3de948)[_0x9925('0x17')](_0x31d2fd);}};}function respondWithFilteredResult(_0x18dbdb,_0x23c536){return function(_0x3adc5d){if(_0x3adc5d){var _0x2bc69b=_0x3adc5d[_0x9925('0x18')],_0x4f2b1f=_0x23c536[_0x9925('0x19')],_0x4ab607=_0x23c536['offset']+_0x23c536[_0x9925('0x1a')],_0x3c607f;if(_0x4ab607>=_0x2bc69b){_0x4ab607=_0x2bc69b;_0x3c607f=0xc8;}else{_0x3c607f=0xce;}_0x18dbdb[_0x9925('0x1b')](_0x3c607f);return _0x18dbdb['set'](_0x9925('0x1c'),_0x4f2b1f+'-'+_0x4ab607+'/'+_0x2bc69b)['json'](_0x3adc5d);}return null;};}function patchUpdates(_0x380d8b){return function(_0x51c4ba){try{jsonpatch[_0x9925('0x1d')](_0x51c4ba,_0x380d8b,!![]);}catch(_0xecb16d){return BPromise['reject'](_0xecb16d);}return _0x51c4ba[_0x9925('0x1e')]();};}function saveUpdates(_0x4c4aa3,_0x468736){return function(_0x405196){if(_0x405196){return _0x405196[_0x9925('0x1f')](_0x4c4aa3)['then'](function(_0x23e98d){return _0x23e98d;});}return null;};}function removeEntity(_0x2b2e2a,_0x147f77){return function(_0x52edfd){if(_0x52edfd){return _0x52edfd[_0x9925('0x20')]()['then'](function(){var _0x57c3e2=_0x52edfd[_0x9925('0x21')]({'plain':!![]});var _0x3f4813=_0x9925('0x22');return db[_0x9925('0x23')][_0x9925('0x20')]({'where':{'type':_0x3f4813,'resourceId':_0x57c3e2['id']}})['then'](function(){return _0x52edfd;});})['then'](function(){_0x2b2e2a['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x450c75,_0x10d836){return function(_0x2bbdb9){if(!_0x2bbdb9){_0x450c75[_0x9925('0x16')](0x194);}return _0x2bbdb9;};}function handleError(_0x44dd0d,_0x527140){_0x527140=_0x527140||0x1f4;return function(_0x3e1744){logger[_0x9925('0x24')](_0x3e1744[_0x9925('0x25')]);if(_0x3e1744[_0x9925('0x26')]){delete _0x3e1744['name'];}_0x44dd0d[_0x9925('0x1b')](_0x527140)[_0x9925('0x27')](_0x3e1744);};}exports['index']=function(_0x306cb9,_0x3d9e4a){var _0x3fe3c4={},_0x19d155={},_0x2535bb={'count':0x0,'rows':[]};var _0x584348=_['map'](db[_0x9925('0x28')][_0x9925('0x29')],function(_0x3b440f){return{'name':_0x3b440f[_0x9925('0x2a')],'type':_0x3b440f['type'][_0x9925('0x2b')]};});_0x19d155[_0x9925('0x2c')]=_[_0x9925('0x2d')](_0x584348,_0x9925('0x26'));_0x19d155[_0x9925('0x2e')]=_[_0x9925('0x2f')](_0x306cb9[_0x9925('0x2e')]);_0x19d155[_0x9925('0x30')]=_['intersection'](_0x19d155['model'],_0x19d155[_0x9925('0x2e')]);_0x3fe3c4[_0x9925('0x31')]=_[_0x9925('0x32')](_0x19d155[_0x9925('0x2c')],qs['fields'](_0x306cb9[_0x9925('0x2e')][_0x9925('0x33')]));_0x3fe3c4[_0x9925('0x31')]=_0x3fe3c4[_0x9925('0x31')][_0x9925('0x34')]?_0x3fe3c4[_0x9925('0x31')]:_0x19d155['model'];if(!_0x306cb9[_0x9925('0x2e')][_0x9925('0x35')]('nolimit')){_0x3fe3c4['limit']=qs[_0x9925('0x1a')](_0x306cb9[_0x9925('0x2e')][_0x9925('0x1a')]);_0x3fe3c4[_0x9925('0x19')]=qs['offset'](_0x306cb9[_0x9925('0x2e')][_0x9925('0x19')]);}_0x3fe3c4['order']=qs['sort'](_0x306cb9[_0x9925('0x2e')][_0x9925('0x36')]);_0x3fe3c4[_0x9925('0x37')]=qs[_0x9925('0x30')](_[_0x9925('0x38')](_0x306cb9[_0x9925('0x2e')],_0x19d155[_0x9925('0x30')]),_0x584348);if(_0x306cb9[_0x9925('0x2e')]['filter']){_0x3fe3c4['where']=_['merge'](_0x3fe3c4[_0x9925('0x37')],{'$or':_[_0x9925('0x2d')](_0x584348,function(_0x2d5e18){if(_0x2d5e18[_0x9925('0x39')]!==_0x9925('0x3a')){var _0x5eb1c8={};_0x5eb1c8[_0x2d5e18['name']]={'$like':'%'+_0x306cb9['query'][_0x9925('0x3b')]+'%'};return _0x5eb1c8;}})});}_0x3fe3c4=_['merge']({},_0x3fe3c4,_0x306cb9[_0x9925('0x3c')]);var _0x521968={'where':_0x3fe3c4[_0x9925('0x37')]};return db[_0x9925('0x28')][_0x9925('0x18')](_0x521968)['then'](function(_0x3570af){_0x2535bb[_0x9925('0x18')]=_0x3570af;if(_0x306cb9['query'][_0x9925('0x3d')]){_0x3fe3c4[_0x9925('0x3e')]=[{'all':!![]}];}return db[_0x9925('0x28')][_0x9925('0x3f')](_0x3fe3c4);})[_0x9925('0x40')](function(_0xe19152){_0x2535bb[_0x9925('0x41')]=_0xe19152;return _0x2535bb;})[_0x9925('0x40')](respondWithFilteredResult(_0x3d9e4a,_0x3fe3c4))[_0x9925('0x42')](handleError(_0x3d9e4a,null));};exports[_0x9925('0x43')]=function(_0x52b099,_0x36dfa7){var _0x10949a={'raw':!![],'where':{'id':_0x52b099[_0x9925('0x44')]['id']}},_0x30c68d={};_0x30c68d[_0x9925('0x2c')]=_[_0x9925('0x2f')](db[_0x9925('0x28')][_0x9925('0x29')]);_0x30c68d[_0x9925('0x2e')]=_['keys'](_0x52b099[_0x9925('0x2e')]);_0x30c68d[_0x9925('0x30')]=_['intersection'](_0x30c68d[_0x9925('0x2c')],_0x30c68d['query']);_0x10949a[_0x9925('0x31')]=_[_0x9925('0x32')](_0x30c68d[_0x9925('0x2c')],qs['fields'](_0x52b099[_0x9925('0x2e')][_0x9925('0x33')]));_0x10949a[_0x9925('0x31')]=_0x10949a[_0x9925('0x31')][_0x9925('0x34')]?_0x10949a['attributes']:_0x30c68d[_0x9925('0x2c')];if(_0x52b099['query']['includeAll']){_0x10949a['include']=[{'all':!![]}];}_0x10949a=_[_0x9925('0x45')]({},_0x10949a,_0x52b099[_0x9925('0x3c')]);return db[_0x9925('0x28')][_0x9925('0x46')](_0x10949a)[_0x9925('0x40')](handleEntityNotFound(_0x36dfa7,null))[_0x9925('0x40')](respondWithResult(_0x36dfa7,null))['catch'](handleError(_0x36dfa7,null));};exports[_0x9925('0x47')]=function(_0x4cca52,_0x3335dd){return db[_0x9925('0x28')][_0x9925('0x47')](_0x4cca52[_0x9925('0x48')],{})[_0x9925('0x40')](function(_0x4b5fb4){var _0x1c2837=_0x4cca52[_0x9925('0x49')][_0x9925('0x21')]({'plain':!![]});if(!_0x1c2837)throw new Error(_0x9925('0x4a'));if(_0x1c2837[_0x9925('0x4b')]==='user'){var _0x4713e4=_0x4b5fb4[_0x9925('0x21')]({'plain':!![]});var _0x17c777=_0x9925('0x22');return db[_0x9925('0x4c')][_0x9925('0x46')]({'where':{'name':_0x17c777,'userProfileId':_0x1c2837[_0x9925('0x4d')]},'raw':!![]})[_0x9925('0x40')](function(_0x30b2ab){if(_0x30b2ab&&_0x30b2ab[_0x9925('0x4e')]===0x0){return db[_0x9925('0x23')][_0x9925('0x47')]({'name':_0x4713e4[_0x9925('0x26')],'resourceId':_0x4713e4['id'],'type':_0x30b2ab['name'],'sectionId':_0x30b2ab['id']},{})[_0x9925('0x40')](function(){return _0x4b5fb4;});}else{return _0x4b5fb4;}})[_0x9925('0x42')](function(_0x587a29){logger[_0x9925('0x24')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x587a29);throw _0x587a29;});}return _0x4b5fb4;})['then'](respondWithResult(_0x3335dd,0xc9))[_0x9925('0x42')](handleError(_0x3335dd,null));};exports['update']=function(_0x4a89ec,_0x224ed6){if(_0x4a89ec[_0x9925('0x48')]['id']){delete _0x4a89ec[_0x9925('0x48')]['id'];}return db[_0x9925('0x28')][_0x9925('0x46')]({'where':{'id':_0x4a89ec['params']['id']}})[_0x9925('0x40')](handleEntityNotFound(_0x224ed6,null))[_0x9925('0x40')](saveUpdates(_0x4a89ec[_0x9925('0x48')],null))[_0x9925('0x40')](respondWithResult(_0x224ed6,null))[_0x9925('0x42')](handleError(_0x224ed6,null));};exports['destroy']=function(_0x17fa62,_0x218910){return db[_0x9925('0x28')][_0x9925('0x46')]({'where':{'id':_0x17fa62[_0x9925('0x44')]['id']}})['then'](handleEntityNotFound(_0x218910,null))[_0x9925('0x40')](removeEntity(_0x218910,null))[_0x9925('0x42')](handleError(_0x218910,null));};exports[_0x9925('0x4f')]=function(_0x4edba2,_0x401ad7,_0x490d29){if(_0x4edba2[_0x9925('0x48')]['id']){delete _0x4edba2[_0x9925('0x48')]['id'];}return db[_0x9925('0x28')][_0x9925('0x46')]({'where':{'id':_0x4edba2[_0x9925('0x44')]['id']}})[_0x9925('0x40')](handleEntityNotFound(_0x401ad7,null))[_0x9925('0x40')](function(_0x5e0447){if(_0x5e0447){_0x4edba2[_0x9925('0x48')]['IntervalId']=_0x5e0447['id'];return db[_0x9925('0x28')][_0x9925('0x47')](_0x4edba2[_0x9925('0x48')]);}})[_0x9925('0x40')](respondWithResult(_0x401ad7,null))['catch'](handleError(_0x401ad7,null));};exports[_0x9925('0x50')]=function(_0x58072c,_0x143cab,_0x49d640){var _0x2f6d97={};var _0x32336f={};var _0x4f6449;var _0xde7a71;return db['Interval'][_0x9925('0x51')]({'where':{'id':_0x58072c[_0x9925('0x44')]['id']}})[_0x9925('0x40')](handleEntityNotFound(_0x143cab,null))[_0x9925('0x40')](function(_0x8b751e){if(_0x8b751e){_0x4f6449=_0x8b751e;_0x32336f['model']=_[_0x9925('0x2f')](db['Interval'][_0x9925('0x29')]);_0x32336f['query']=_[_0x9925('0x2f')](_0x58072c[_0x9925('0x2e')]);_0x32336f[_0x9925('0x30')]=_['intersection'](_0x32336f[_0x9925('0x2c')],_0x32336f[_0x9925('0x2e')]);_0x2f6d97[_0x9925('0x31')]=_[_0x9925('0x32')](_0x32336f['model'],qs[_0x9925('0x33')](_0x58072c[_0x9925('0x2e')][_0x9925('0x33')]));_0x2f6d97[_0x9925('0x31')]=_0x2f6d97[_0x9925('0x31')]['length']?_0x2f6d97[_0x9925('0x31')]:_0x32336f['model'];_0x2f6d97[_0x9925('0x52')]=qs[_0x9925('0x36')](_0x58072c['query'][_0x9925('0x36')]);_0x2f6d97[_0x9925('0x37')]=qs['filters'](_[_0x9925('0x38')](_0x58072c[_0x9925('0x2e')],_0x32336f[_0x9925('0x30')]));if(_0x58072c[_0x9925('0x2e')][_0x9925('0x3b')]){_0x2f6d97[_0x9925('0x37')]=_[_0x9925('0x45')](_0x2f6d97[_0x9925('0x37')],{'$or':_[_0x9925('0x2d')](_0x2f6d97[_0x9925('0x31')],function(_0x3b2078){var _0x1f34f6={};_0x1f34f6[_0x3b2078]={'$like':'%'+_0x58072c[_0x9925('0x2e')][_0x9925('0x3b')]+'%'};return _0x1f34f6;})});}_0x2f6d97=_[_0x9925('0x45')]({},_0x2f6d97,_0x58072c[_0x9925('0x3c')]);return _0x4f6449[_0x9925('0x50')](_0x2f6d97);}})[_0x9925('0x40')](function(_0x50166){if(_0x50166){_0xde7a71=_0x50166[_0x9925('0x34')];if(!_0x58072c[_0x9925('0x2e')]['hasOwnProperty']('nolimit')){_0x2f6d97['limit']=qs['limit'](_0x58072c[_0x9925('0x2e')]['limit']);_0x2f6d97[_0x9925('0x19')]=qs['offset'](_0x58072c[_0x9925('0x2e')][_0x9925('0x19')]);}return _0x4f6449[_0x9925('0x50')](_0x2f6d97);}})['then'](function(_0x50047c){if(_0x50047c){return _0x50047c?{'count':_0xde7a71,'rows':_0x50047c}:null;}})['then'](respondWithResult(_0x143cab,null))[_0x9925('0x42')](handleError(_0x143cab,null));};exports[_0x9925('0x53')]=function(_0xb20e59,_0xb42697,_0x500e85){return db['Interval'][_0x9925('0x51')]({'where':{'id':_0xb20e59[_0x9925('0x44')]['id']}})[_0x9925('0x40')](handleEntityNotFound(_0xb42697,null))[_0x9925('0x40')](function(_0x13c893){if(_0x13c893){return db['sequelize'][_0x9925('0x54')](function(_0x57c0f6){return db[_0x9925('0x28')]['destroy']({'where':{'IntervalId':_0xb20e59[_0x9925('0x44')]['id']},'transaction':_0x57c0f6})[_0x9925('0x40')](function(_0x27cb89){var _0x689c92=_[_0x9925('0x2d')](_0xb20e59[_0x9925('0x48')],function(_0x10a878){delete _0x10a878['id'];_0x10a878[_0x9925('0x55')]=_0xb20e59['params']['id'];return _0x10a878;});return db['Interval']['bulkCreate'](_0x689c92,{'transaction':_0x57c0f6});});})[_0x9925('0x40')](function(){return db[_0x9925('0x28')]['findAll']({'where':{'IntervalId':_0xb20e59['params']['id']}});});}})[_0x9925('0x40')](respondWithResult(_0xb42697,null))[_0x9925('0x42')](handleError(_0xb42697,null));};