16c2c606f385903f3e8726fd6e7bc941a59e83b3
[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 _0xaaa1=['path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','save','update','then','get','Intervals','destroy','error','stack','name','send','index','map','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','Interval','include','findAll','rows','catch','show','params','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','IntervalId','options','getIntervals','findOne','sequelize','transaction','bulkCreate','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util'];(function(_0x432fca,_0xb0b1b5){var _0x3adba4=function(_0x5e3ae4){while(--_0x5e3ae4){_0x432fca['push'](_0x432fca['shift']());}};_0x3adba4(++_0xb0b1b5);}(_0xaaa1,0x1cf));var _0x1aaa=function(_0x3fef2e,_0x5029a5){_0x3fef2e=_0x3fef2e-0x0;var _0x500946=_0xaaa1[_0x3fef2e];return _0x500946;};'use strict';var emlformat=require(_0x1aaa('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x1aaa('0x1'));var jsonpatch=require(_0x1aaa('0x2'));var rp=require('request-promise');var moment=require(_0x1aaa('0x3'));var BPromise=require(_0x1aaa('0x4'));var Mustache=require(_0x1aaa('0x5'));var util=require(_0x1aaa('0x6'));var path=require(_0x1aaa('0x7'));var sox=require(_0x1aaa('0x8'));var csv=require(_0x1aaa('0x9'));var ejs=require(_0x1aaa('0xa'));var fs=require('fs');var fs_extra=require(_0x1aaa('0xb'));var _=require(_0x1aaa('0xc'));var squel=require(_0x1aaa('0xd'));var crypto=require(_0x1aaa('0xe'));var jsforce=require(_0x1aaa('0xf'));var deskjs=require(_0x1aaa('0x10'));var toCsv=require(_0x1aaa('0x9'));var querystring=require('querystring');var Papa=require(_0x1aaa('0x11'));var Redis=require(_0x1aaa('0x12'));var authService=require(_0x1aaa('0x13'));var qs=require(_0x1aaa('0x14'));var as=require(_0x1aaa('0x15'));var hardwareService=require(_0x1aaa('0x16'));var logger=require(_0x1aaa('0x17'))(_0x1aaa('0x18'));var utils=require(_0x1aaa('0x19'));var config=require(_0x1aaa('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x1aaa('0x1b'))['db'];var extensions=require(_0x1aaa('0x1c'));function respondWithStatusCode(_0xe45261,_0x547282){_0x547282=_0x547282||0xcc;return function(_0x50ab7c){if(_0x50ab7c){return _0xe45261[_0x1aaa('0x1d')](_0x547282);}return _0xe45261[_0x1aaa('0x1e')](_0x547282)[_0x1aaa('0x1f')]();};}function respondWithResult(_0x57b093,_0x167e4c){_0x167e4c=_0x167e4c||0xc8;return function(_0x480e4e){if(_0x480e4e){return _0x57b093[_0x1aaa('0x1e')](_0x167e4c)[_0x1aaa('0x20')](_0x480e4e);}};}function respondWithFilteredResult(_0xb00ac7,_0x421403){return function(_0xd609bb){if(_0xd609bb){var _0x3ee368=typeof _0x421403[_0x1aaa('0x21')]===_0x1aaa('0x22')&&typeof _0x421403['limit']===_0x1aaa('0x22');var _0x3bef69=_0xd609bb['count'];var _0xe5813e=_0x3ee368?0x0:_0x421403[_0x1aaa('0x21')];var _0x3dcdaa=_0x3ee368?_0xd609bb[_0x1aaa('0x23')]:_0x421403['offset']+_0x421403[_0x1aaa('0x24')];var _0x892799;if(_0x3dcdaa>=_0x3bef69){_0x3dcdaa=_0x3bef69;_0x892799=0xc8;}else{_0x892799=0xce;}_0xb00ac7[_0x1aaa('0x1e')](_0x892799);return _0xb00ac7[_0x1aaa('0x25')](_0x1aaa('0x26'),_0xe5813e+'-'+_0x3dcdaa+'/'+_0x3bef69)[_0x1aaa('0x20')](_0xd609bb);}return null;};}function patchUpdates(_0x1afc0a){return function(_0x4e502a){try{jsonpatch['apply'](_0x4e502a,_0x1afc0a,!![]);}catch(_0xf99afe){return BPromise['reject'](_0xf99afe);}return _0x4e502a[_0x1aaa('0x27')]();};}function saveUpdates(_0x5d2698,_0x24ef56){return function(_0x286f4f){if(_0x286f4f){return _0x286f4f[_0x1aaa('0x28')](_0x5d2698)[_0x1aaa('0x29')](function(_0x5f5e04){return _0x5f5e04;});}return null;};}function removeEntity(_0x10c509,_0x86b1c2){return function(_0x26d69b){if(_0x26d69b){return _0x26d69b['destroy']()[_0x1aaa('0x29')](function(){var _0x27f140=_0x26d69b[_0x1aaa('0x2a')]({'plain':!![]});var _0x418756=_0x1aaa('0x2b');return db['UserProfileResource'][_0x1aaa('0x2c')]({'where':{'type':_0x418756,'resourceId':_0x27f140['id']}})[_0x1aaa('0x29')](function(){return _0x26d69b;});})[_0x1aaa('0x29')](function(){_0x10c509[_0x1aaa('0x1e')](0xcc)[_0x1aaa('0x1f')]();});}};}function handleEntityNotFound(_0x4cbb00,_0x2c6b9c){return function(_0x295624){if(!_0x295624){_0x4cbb00[_0x1aaa('0x1d')](0x194);}return _0x295624;};}function handleError(_0x112ba6,_0x408169){_0x408169=_0x408169||0x1f4;return function(_0x2c426d){logger[_0x1aaa('0x2d')](_0x2c426d[_0x1aaa('0x2e')]);if(_0x2c426d[_0x1aaa('0x2f')]){delete _0x2c426d[_0x1aaa('0x2f')];}_0x112ba6[_0x1aaa('0x1e')](_0x408169)[_0x1aaa('0x30')](_0x2c426d);};}exports[_0x1aaa('0x31')]=function(_0x3f59e7,_0x292637){var _0x3bc18e={},_0x454f6e={},_0x52fde1={'count':0x0,'rows':[]};var _0x53fd19=_[_0x1aaa('0x32')](db['Interval'][_0x1aaa('0x33')],function(_0x5e23fb){return{'name':_0x5e23fb['fieldName'],'type':_0x5e23fb[_0x1aaa('0x34')][_0x1aaa('0x35')]};});_0x454f6e[_0x1aaa('0x36')]=_[_0x1aaa('0x32')](_0x53fd19,_0x1aaa('0x2f'));_0x454f6e[_0x1aaa('0x37')]=_[_0x1aaa('0x38')](_0x3f59e7['query']);_0x454f6e['filters']=_[_0x1aaa('0x39')](_0x454f6e['model'],_0x454f6e['query']);_0x3bc18e[_0x1aaa('0x3a')]=_['intersection'](_0x454f6e[_0x1aaa('0x36')],qs['fields'](_0x3f59e7[_0x1aaa('0x37')][_0x1aaa('0x3b')]));_0x3bc18e[_0x1aaa('0x3a')]=_0x3bc18e[_0x1aaa('0x3a')][_0x1aaa('0x3c')]?_0x3bc18e[_0x1aaa('0x3a')]:_0x454f6e[_0x1aaa('0x36')];if(!_0x3f59e7[_0x1aaa('0x37')][_0x1aaa('0x3d')](_0x1aaa('0x3e'))){_0x3bc18e[_0x1aaa('0x24')]=qs['limit'](_0x3f59e7[_0x1aaa('0x37')][_0x1aaa('0x24')]);_0x3bc18e[_0x1aaa('0x21')]=qs['offset'](_0x3f59e7[_0x1aaa('0x37')]['offset']);}_0x3bc18e[_0x1aaa('0x3f')]=qs[_0x1aaa('0x40')](_0x3f59e7[_0x1aaa('0x37')][_0x1aaa('0x40')]);_0x3bc18e['where']=qs[_0x1aaa('0x41')](_[_0x1aaa('0x42')](_0x3f59e7[_0x1aaa('0x37')],_0x454f6e[_0x1aaa('0x41')]),_0x53fd19);if(_0x3f59e7['query'][_0x1aaa('0x43')]){_0x3bc18e[_0x1aaa('0x44')]=_[_0x1aaa('0x45')](_0x3bc18e[_0x1aaa('0x44')],{'$or':_['map'](_0x53fd19,function(_0x1adab5){if(_0x1adab5[_0x1aaa('0x34')]!==_0x1aaa('0x46')){var _0x36ddcf={};_0x36ddcf[_0x1adab5['name']]={'$like':'%'+_0x3f59e7[_0x1aaa('0x37')][_0x1aaa('0x43')]+'%'};return _0x36ddcf;}})});}_0x3bc18e=_['merge']({},_0x3bc18e,_0x3f59e7['options']);var _0xb84d4b={'where':_0x3bc18e[_0x1aaa('0x44')]};return db[_0x1aaa('0x47')][_0x1aaa('0x23')](_0xb84d4b)[_0x1aaa('0x29')](function(_0x6b089a){_0x52fde1[_0x1aaa('0x23')]=_0x6b089a;if(_0x3f59e7['query']['includeAll']){_0x3bc18e[_0x1aaa('0x48')]=[{'all':!![]}];}return db[_0x1aaa('0x47')][_0x1aaa('0x49')](_0x3bc18e);})[_0x1aaa('0x29')](function(_0x153d46){_0x52fde1[_0x1aaa('0x4a')]=_0x153d46;return _0x52fde1;})['then'](respondWithFilteredResult(_0x292637,_0x3bc18e))[_0x1aaa('0x4b')](handleError(_0x292637,null));};exports[_0x1aaa('0x4c')]=function(_0x350a94,_0x3d3407){var _0x4502df={'raw':!![],'where':{'id':_0x350a94[_0x1aaa('0x4d')]['id']}},_0xc143e5={};_0xc143e5[_0x1aaa('0x36')]=_[_0x1aaa('0x38')](db[_0x1aaa('0x47')][_0x1aaa('0x33')]);_0xc143e5[_0x1aaa('0x37')]=_[_0x1aaa('0x38')](_0x350a94[_0x1aaa('0x37')]);_0xc143e5[_0x1aaa('0x41')]=_[_0x1aaa('0x39')](_0xc143e5['model'],_0xc143e5[_0x1aaa('0x37')]);_0x4502df[_0x1aaa('0x3a')]=_['intersection'](_0xc143e5[_0x1aaa('0x36')],qs[_0x1aaa('0x3b')](_0x350a94[_0x1aaa('0x37')][_0x1aaa('0x3b')]));_0x4502df['attributes']=_0x4502df[_0x1aaa('0x3a')][_0x1aaa('0x3c')]?_0x4502df[_0x1aaa('0x3a')]:_0xc143e5['model'];if(_0x350a94[_0x1aaa('0x37')][_0x1aaa('0x4e')]){_0x4502df[_0x1aaa('0x48')]=[{'all':!![]}];}_0x4502df=_[_0x1aaa('0x45')]({},_0x4502df,_0x350a94['options']);return db[_0x1aaa('0x47')][_0x1aaa('0x4f')](_0x4502df)[_0x1aaa('0x29')](handleEntityNotFound(_0x3d3407,null))[_0x1aaa('0x29')](respondWithResult(_0x3d3407,null))[_0x1aaa('0x4b')](handleError(_0x3d3407,null));};exports[_0x1aaa('0x50')]=function(_0x55fca5,_0x1cfdc1){return db[_0x1aaa('0x47')]['create'](_0x55fca5[_0x1aaa('0x51')],{})['then'](function(_0x284095){var _0x4911ee=_0x55fca5[_0x1aaa('0x52')][_0x1aaa('0x2a')]({'plain':!![]});if(!_0x4911ee)throw new Error(_0x1aaa('0x53'));if(_0x4911ee[_0x1aaa('0x54')]===_0x1aaa('0x52')){var _0x7f9e24=_0x284095['get']({'plain':!![]});var _0x393a0a=_0x1aaa('0x2b');return db[_0x1aaa('0x55')][_0x1aaa('0x4f')]({'where':{'name':_0x393a0a,'userProfileId':_0x4911ee['userProfileId']},'raw':!![]})['then'](function(_0x356b64){if(_0x356b64&&_0x356b64['autoAssociation']===0x0){return db['UserProfileResource'][_0x1aaa('0x50')]({'name':_0x7f9e24[_0x1aaa('0x2f')],'resourceId':_0x7f9e24['id'],'type':_0x356b64[_0x1aaa('0x2f')],'sectionId':_0x356b64['id']},{})[_0x1aaa('0x29')](function(){return _0x284095;});}else{return _0x284095;}})['catch'](function(_0x22b0ce){logger['error'](_0x1aaa('0x56'),_0x22b0ce);throw _0x22b0ce;});}return _0x284095;})['then'](respondWithResult(_0x1cfdc1,0xc9))[_0x1aaa('0x4b')](handleError(_0x1cfdc1,null));};exports[_0x1aaa('0x28')]=function(_0x1467ff,_0x117636){if(_0x1467ff[_0x1aaa('0x51')]['id']){delete _0x1467ff[_0x1aaa('0x51')]['id'];}return db[_0x1aaa('0x47')][_0x1aaa('0x4f')]({'where':{'id':_0x1467ff['params']['id']}})[_0x1aaa('0x29')](handleEntityNotFound(_0x117636,null))[_0x1aaa('0x29')](saveUpdates(_0x1467ff['body'],null))[_0x1aaa('0x29')](respondWithResult(_0x117636,null))[_0x1aaa('0x4b')](handleError(_0x117636,null));};exports[_0x1aaa('0x2c')]=function(_0x154bc6,_0x3488fb){return db[_0x1aaa('0x47')]['find']({'where':{'id':_0x154bc6['params']['id']}})[_0x1aaa('0x29')](handleEntityNotFound(_0x3488fb,null))[_0x1aaa('0x29')](removeEntity(_0x3488fb,null))[_0x1aaa('0x4b')](handleError(_0x3488fb,null));};exports['addInterval']=function(_0x38d475,_0x22d9dd,_0x6ded3d){if(_0x38d475['body']['id']){delete _0x38d475[_0x1aaa('0x51')]['id'];}return db[_0x1aaa('0x47')]['find']({'where':{'id':_0x38d475['params']['id']}})[_0x1aaa('0x29')](handleEntityNotFound(_0x22d9dd,null))[_0x1aaa('0x29')](function(_0x4beac1){if(_0x4beac1){_0x38d475[_0x1aaa('0x51')][_0x1aaa('0x57')]=_0x4beac1['id'];return db[_0x1aaa('0x47')][_0x1aaa('0x50')](_0x38d475[_0x1aaa('0x51')]);}})[_0x1aaa('0x29')](respondWithResult(_0x22d9dd,null))[_0x1aaa('0x4b')](handleError(_0x22d9dd,null));};exports['getIntervals']=function(_0x8b9ae,_0x4e9a3f,_0x2c0994){var _0x1c2489={};var _0x1cefb9={};var _0x25d177;var _0x3eb938;return db[_0x1aaa('0x47')]['findOne']({'where':{'id':_0x8b9ae[_0x1aaa('0x4d')]['id']}})[_0x1aaa('0x29')](handleEntityNotFound(_0x4e9a3f,null))['then'](function(_0x101cce){if(_0x101cce){_0x25d177=_0x101cce;_0x1cefb9['model']=_[_0x1aaa('0x38')](db[_0x1aaa('0x47')][_0x1aaa('0x33')]);_0x1cefb9[_0x1aaa('0x37')]=_[_0x1aaa('0x38')](_0x8b9ae[_0x1aaa('0x37')]);_0x1cefb9[_0x1aaa('0x41')]=_['intersection'](_0x1cefb9['model'],_0x1cefb9[_0x1aaa('0x37')]);_0x1c2489[_0x1aaa('0x3a')]=_[_0x1aaa('0x39')](_0x1cefb9[_0x1aaa('0x36')],qs['fields'](_0x8b9ae[_0x1aaa('0x37')][_0x1aaa('0x3b')]));_0x1c2489[_0x1aaa('0x3a')]=_0x1c2489[_0x1aaa('0x3a')][_0x1aaa('0x3c')]?_0x1c2489[_0x1aaa('0x3a')]:_0x1cefb9['model'];_0x1c2489[_0x1aaa('0x3f')]=qs['sort'](_0x8b9ae[_0x1aaa('0x37')][_0x1aaa('0x40')]);_0x1c2489[_0x1aaa('0x44')]=qs[_0x1aaa('0x41')](_[_0x1aaa('0x42')](_0x8b9ae['query'],_0x1cefb9['filters']));if(_0x8b9ae[_0x1aaa('0x37')]['filter']){_0x1c2489[_0x1aaa('0x44')]=_['merge'](_0x1c2489['where'],{'$or':_['map'](_0x1c2489['attributes'],function(_0x209421){var _0xfa42fc={};_0xfa42fc[_0x209421]={'$like':'%'+_0x8b9ae[_0x1aaa('0x37')]['filter']+'%'};return _0xfa42fc;})});}_0x1c2489=_['merge']({},_0x1c2489,_0x8b9ae[_0x1aaa('0x58')]);return _0x25d177[_0x1aaa('0x59')](_0x1c2489);}})[_0x1aaa('0x29')](function(_0x361855){if(_0x361855){_0x3eb938=_0x361855['length'];if(!_0x8b9ae[_0x1aaa('0x37')][_0x1aaa('0x3d')]('nolimit')){_0x1c2489['limit']=qs[_0x1aaa('0x24')](_0x8b9ae[_0x1aaa('0x37')][_0x1aaa('0x24')]);_0x1c2489['offset']=qs[_0x1aaa('0x21')](_0x8b9ae[_0x1aaa('0x37')][_0x1aaa('0x21')]);}return _0x25d177[_0x1aaa('0x59')](_0x1c2489);}})[_0x1aaa('0x29')](function(_0x582a04){if(_0x582a04){return _0x582a04?{'count':_0x3eb938,'rows':_0x582a04}:null;}})[_0x1aaa('0x29')](respondWithResult(_0x4e9a3f,null))[_0x1aaa('0x4b')](handleError(_0x4e9a3f,null));};exports['addIntervals']=function(_0x4f0d69,_0x3a0a4c,_0x27a043){return db[_0x1aaa('0x47')][_0x1aaa('0x5a')]({'where':{'id':_0x4f0d69['params']['id']}})['then'](handleEntityNotFound(_0x3a0a4c,null))[_0x1aaa('0x29')](function(_0x3e1c2f){if(_0x3e1c2f){return db[_0x1aaa('0x5b')][_0x1aaa('0x5c')](function(_0x28cd50){return db[_0x1aaa('0x47')][_0x1aaa('0x2c')]({'where':{'IntervalId':_0x4f0d69[_0x1aaa('0x4d')]['id']},'transaction':_0x28cd50})['then'](function(_0x4f7df7){var _0x546e2e=_[_0x1aaa('0x32')](_0x4f0d69[_0x1aaa('0x51')],function(_0x1c9e88){delete _0x1c9e88['id'];_0x1c9e88['IntervalId']=_0x4f0d69[_0x1aaa('0x4d')]['id'];return _0x1c9e88;});return db['Interval'][_0x1aaa('0x5d')](_0x546e2e,{'transaction':_0x28cd50});});})[_0x1aaa('0x29')](function(){return db[_0x1aaa('0x47')][_0x1aaa('0x49')]({'where':{'IntervalId':_0x4f0d69['params']['id']}});});}})[_0x1aaa('0x29')](respondWithResult(_0x3a0a4c,null))['catch'](handleError(_0x3a0a4c,null));};