Built motion from commit (unavailable).|2.5.27
[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 _0x3de3=['keys','rawAttributes','create','user','get','role','Intervals','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','addInterval','IntervalId','getIntervals','findOne','order','options','sequelize','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','fs-extra','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','end','json','count','offset','limit','status','apply','reject','save','then','destroy','UserProfileResource','error','stack','name','send','map','Interval','fieldName','type','key','filters','intersection','query','model','fields','attributes','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','catch','show'];(function(_0x2cc205,_0x224db8){var _0x2b978f=function(_0x12c310){while(--_0x12c310){_0x2cc205['push'](_0x2cc205['shift']());}};_0x2b978f(++_0x224db8);}(_0x3de3,0x1ce));var _0x33de=function(_0xc95a4d,_0x5e4302){_0xc95a4d=_0xc95a4d-0x0;var _0x33a715=_0x3de3[_0xc95a4d];return _0x33a715;};'use strict';var emlformat=require(_0x33de('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x33de('0x1'));var jsonpatch=require(_0x33de('0x2'));var rp=require('request-promise');var moment=require(_0x33de('0x3'));var BPromise=require(_0x33de('0x4'));var Mustache=require(_0x33de('0x5'));var util=require(_0x33de('0x6'));var path=require('path');var sox=require(_0x33de('0x7'));var csv=require(_0x33de('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x33de('0x9'));var _=require('lodash');var squel=require(_0x33de('0xa'));var crypto=require(_0x33de('0xb'));var jsforce=require(_0x33de('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x33de('0x8'));var querystring=require(_0x33de('0xd'));var Papa=require(_0x33de('0xe'));var Redis=require('ioredis');var authService=require(_0x33de('0xf'));var qs=require(_0x33de('0x10'));var as=require(_0x33de('0x11'));var hardwareService=require(_0x33de('0x12'));var logger=require(_0x33de('0x13'))(_0x33de('0x14'));var utils=require(_0x33de('0x15'));var config=require(_0x33de('0x16'));var licenseUtil=require(_0x33de('0x17'));var db=require(_0x33de('0x18'))['db'];var extensions=require(_0x33de('0x19'));function respondWithStatusCode(_0x5170ad,_0x6b1a4c){_0x6b1a4c=_0x6b1a4c||0xcc;return function(_0x25d069){if(_0x25d069){return _0x5170ad['sendStatus'](_0x6b1a4c);}return _0x5170ad['status'](_0x6b1a4c)[_0x33de('0x1a')]();};}function respondWithResult(_0x22bda8,_0x2b3748){_0x2b3748=_0x2b3748||0xc8;return function(_0x57a2a1){if(_0x57a2a1){return _0x22bda8['status'](_0x2b3748)[_0x33de('0x1b')](_0x57a2a1);}};}function respondWithFilteredResult(_0x1b1166,_0x522ba0){return function(_0x4ff69f){if(_0x4ff69f){var _0x185849=_0x4ff69f[_0x33de('0x1c')],_0x16c050=_0x522ba0[_0x33de('0x1d')],_0x13e832=_0x522ba0['offset']+_0x522ba0[_0x33de('0x1e')],_0x4de4ef;if(_0x13e832>=_0x185849){_0x13e832=_0x185849;_0x4de4ef=0xc8;}else{_0x4de4ef=0xce;}_0x1b1166[_0x33de('0x1f')](_0x4de4ef);return _0x1b1166['set']('Content-Range',_0x16c050+'-'+_0x13e832+'/'+_0x185849)[_0x33de('0x1b')](_0x4ff69f);}return null;};}function patchUpdates(_0x52d718){return function(_0x16255f){try{jsonpatch[_0x33de('0x20')](_0x16255f,_0x52d718,!![]);}catch(_0x3810b5){return BPromise[_0x33de('0x21')](_0x3810b5);}return _0x16255f[_0x33de('0x22')]();};}function saveUpdates(_0x40a8e6,_0x6cdc4f){return function(_0x493263){if(_0x493263){return _0x493263['update'](_0x40a8e6)[_0x33de('0x23')](function(_0x5af3fa){return _0x5af3fa;});}return null;};}function removeEntity(_0x8acd8d,_0x4cd8db){return function(_0x28ed17){if(_0x28ed17){return _0x28ed17[_0x33de('0x24')]()['then'](function(){var _0x2dbcf2=_0x28ed17['get']({'plain':!![]});var _0x67d040='Intervals';return db[_0x33de('0x25')][_0x33de('0x24')]({'where':{'type':_0x67d040,'resourceId':_0x2dbcf2['id']}})[_0x33de('0x23')](function(){return _0x28ed17;});})['then'](function(){_0x8acd8d[_0x33de('0x1f')](0xcc)[_0x33de('0x1a')]();});}};}function handleEntityNotFound(_0x140979,_0x5cd31e){return function(_0x34fba3){if(!_0x34fba3){_0x140979['sendStatus'](0x194);}return _0x34fba3;};}function handleError(_0x566373,_0x1c8de9){_0x1c8de9=_0x1c8de9||0x1f4;return function(_0x17c760){logger[_0x33de('0x26')](_0x17c760[_0x33de('0x27')]);if(_0x17c760[_0x33de('0x28')]){delete _0x17c760[_0x33de('0x28')];}_0x566373[_0x33de('0x1f')](_0x1c8de9)[_0x33de('0x29')](_0x17c760);};}exports['index']=function(_0x5ae0e8,_0x2755e6){var _0x1420d2={},_0xaeaec5={},_0x451ff5={'count':0x0,'rows':[]};var _0x167cec=_[_0x33de('0x2a')](db[_0x33de('0x2b')]['rawAttributes'],function(_0x282158){return{'name':_0x282158[_0x33de('0x2c')],'type':_0x282158[_0x33de('0x2d')][_0x33de('0x2e')]};});_0xaeaec5['model']=_[_0x33de('0x2a')](_0x167cec,_0x33de('0x28'));_0xaeaec5['query']=_['keys'](_0x5ae0e8['query']);_0xaeaec5[_0x33de('0x2f')]=_[_0x33de('0x30')](_0xaeaec5['model'],_0xaeaec5[_0x33de('0x31')]);_0x1420d2['attributes']=_['intersection'](_0xaeaec5[_0x33de('0x32')],qs[_0x33de('0x33')](_0x5ae0e8[_0x33de('0x31')][_0x33de('0x33')]));_0x1420d2[_0x33de('0x34')]=_0x1420d2[_0x33de('0x34')][_0x33de('0x35')]?_0x1420d2[_0x33de('0x34')]:_0xaeaec5['model'];if(!_0x5ae0e8[_0x33de('0x31')]['hasOwnProperty'](_0x33de('0x36'))){_0x1420d2['limit']=qs['limit'](_0x5ae0e8[_0x33de('0x31')][_0x33de('0x1e')]);_0x1420d2[_0x33de('0x1d')]=qs[_0x33de('0x1d')](_0x5ae0e8[_0x33de('0x31')][_0x33de('0x1d')]);}_0x1420d2['order']=qs[_0x33de('0x37')](_0x5ae0e8[_0x33de('0x31')][_0x33de('0x37')]);_0x1420d2[_0x33de('0x38')]=qs[_0x33de('0x2f')](_[_0x33de('0x39')](_0x5ae0e8[_0x33de('0x31')],_0xaeaec5['filters']),_0x167cec);if(_0x5ae0e8[_0x33de('0x31')][_0x33de('0x3a')]){_0x1420d2[_0x33de('0x38')]=_[_0x33de('0x3b')](_0x1420d2[_0x33de('0x38')],{'$or':_[_0x33de('0x2a')](_0x167cec,function(_0x1126b6){if(_0x1126b6['type']!==_0x33de('0x3c')){var _0x33a8d6={};_0x33a8d6[_0x1126b6[_0x33de('0x28')]]={'$like':'%'+_0x5ae0e8[_0x33de('0x31')][_0x33de('0x3a')]+'%'};return _0x33a8d6;}})});}_0x1420d2=_[_0x33de('0x3b')]({},_0x1420d2,_0x5ae0e8['options']);var _0x3924af={'where':_0x1420d2['where']};return db[_0x33de('0x2b')][_0x33de('0x1c')](_0x3924af)['then'](function(_0x198b72){_0x451ff5[_0x33de('0x1c')]=_0x198b72;if(_0x5ae0e8[_0x33de('0x31')][_0x33de('0x3d')]){_0x1420d2[_0x33de('0x3e')]=[{'all':!![]}];}return db[_0x33de('0x2b')][_0x33de('0x3f')](_0x1420d2);})[_0x33de('0x23')](function(_0x48e0fc){_0x451ff5['rows']=_0x48e0fc;return _0x451ff5;})['then'](respondWithFilteredResult(_0x2755e6,_0x1420d2))[_0x33de('0x40')](handleError(_0x2755e6,null));};exports[_0x33de('0x41')]=function(_0x20d04f,_0x376c55){var _0x54acde={'raw':!![],'where':{'id':_0x20d04f['params']['id']}},_0x2ac6a0={};_0x2ac6a0['model']=_[_0x33de('0x42')](db[_0x33de('0x2b')][_0x33de('0x43')]);_0x2ac6a0[_0x33de('0x31')]=_[_0x33de('0x42')](_0x20d04f[_0x33de('0x31')]);_0x2ac6a0[_0x33de('0x2f')]=_['intersection'](_0x2ac6a0[_0x33de('0x32')],_0x2ac6a0['query']);_0x54acde[_0x33de('0x34')]=_['intersection'](_0x2ac6a0[_0x33de('0x32')],qs[_0x33de('0x33')](_0x20d04f['query'][_0x33de('0x33')]));_0x54acde[_0x33de('0x34')]=_0x54acde[_0x33de('0x34')]['length']?_0x54acde['attributes']:_0x2ac6a0[_0x33de('0x32')];if(_0x20d04f[_0x33de('0x31')]['includeAll']){_0x54acde['include']=[{'all':!![]}];}_0x54acde=_[_0x33de('0x3b')]({},_0x54acde,_0x20d04f['options']);return db['Interval']['find'](_0x54acde)[_0x33de('0x23')](handleEntityNotFound(_0x376c55,null))[_0x33de('0x23')](respondWithResult(_0x376c55,null))[_0x33de('0x40')](handleError(_0x376c55,null));};exports[_0x33de('0x44')]=function(_0x51730a,_0x4a0ad8){return db[_0x33de('0x2b')][_0x33de('0x44')](_0x51730a['body'],{})[_0x33de('0x23')](function(_0xc23633){var _0x23a5e7=_0x51730a[_0x33de('0x45')][_0x33de('0x46')]({'plain':!![]});if(!_0x23a5e7)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x23a5e7[_0x33de('0x47')]===_0x33de('0x45')){var _0x4fe3a2=_0xc23633[_0x33de('0x46')]({'plain':!![]});var _0xab2a13=_0x33de('0x48');return db[_0x33de('0x49')][_0x33de('0x4a')]({'where':{'name':_0xab2a13,'userProfileId':_0x23a5e7[_0x33de('0x4b')]},'raw':!![]})[_0x33de('0x23')](function(_0x7538fa){if(_0x7538fa&&_0x7538fa[_0x33de('0x4c')]===0x0){return db[_0x33de('0x25')]['create']({'name':_0x4fe3a2[_0x33de('0x28')],'resourceId':_0x4fe3a2['id'],'type':_0x7538fa[_0x33de('0x28')],'sectionId':_0x7538fa['id']},{})[_0x33de('0x23')](function(){return _0xc23633;});}else{return _0xc23633;}})[_0x33de('0x40')](function(_0xe6d59){logger[_0x33de('0x26')](_0x33de('0x4d'),_0xe6d59);throw _0xe6d59;});}return _0xc23633;})['then'](respondWithResult(_0x4a0ad8,0xc9))[_0x33de('0x40')](handleError(_0x4a0ad8,null));};exports[_0x33de('0x4e')]=function(_0x3c8904,_0x4f0e9f){if(_0x3c8904[_0x33de('0x4f')]['id']){delete _0x3c8904[_0x33de('0x4f')]['id'];}return db[_0x33de('0x2b')][_0x33de('0x4a')]({'where':{'id':_0x3c8904['params']['id']}})['then'](handleEntityNotFound(_0x4f0e9f,null))[_0x33de('0x23')](saveUpdates(_0x3c8904[_0x33de('0x4f')],null))[_0x33de('0x23')](respondWithResult(_0x4f0e9f,null))[_0x33de('0x40')](handleError(_0x4f0e9f,null));};exports[_0x33de('0x24')]=function(_0x51d0cb,_0x5c7df7){return db[_0x33de('0x2b')][_0x33de('0x4a')]({'where':{'id':_0x51d0cb[_0x33de('0x50')]['id']}})[_0x33de('0x23')](handleEntityNotFound(_0x5c7df7,null))[_0x33de('0x23')](removeEntity(_0x5c7df7,null))[_0x33de('0x40')](handleError(_0x5c7df7,null));};exports[_0x33de('0x51')]=function(_0x18a14b,_0x35f529,_0x5de12f){if(_0x18a14b[_0x33de('0x4f')]['id']){delete _0x18a14b[_0x33de('0x4f')]['id'];}return db[_0x33de('0x2b')]['find']({'where':{'id':_0x18a14b[_0x33de('0x50')]['id']}})['then'](handleEntityNotFound(_0x35f529,null))['then'](function(_0x4dae6d){if(_0x4dae6d){_0x18a14b['body'][_0x33de('0x52')]=_0x4dae6d['id'];return db[_0x33de('0x2b')]['create'](_0x18a14b[_0x33de('0x4f')]);}})[_0x33de('0x23')](respondWithResult(_0x35f529,null))['catch'](handleError(_0x35f529,null));};exports[_0x33de('0x53')]=function(_0x7ad0c1,_0x5395a7,_0x32e7a1){var _0x2bd687={};var _0x277bb7={};var _0x3a7c4a;var _0x125dd6;return db[_0x33de('0x2b')][_0x33de('0x54')]({'where':{'id':_0x7ad0c1['params']['id']}})['then'](handleEntityNotFound(_0x5395a7,null))[_0x33de('0x23')](function(_0x49516d){if(_0x49516d){_0x3a7c4a=_0x49516d;_0x277bb7[_0x33de('0x32')]=_[_0x33de('0x42')](db['Interval'][_0x33de('0x43')]);_0x277bb7['query']=_[_0x33de('0x42')](_0x7ad0c1[_0x33de('0x31')]);_0x277bb7['filters']=_['intersection'](_0x277bb7[_0x33de('0x32')],_0x277bb7[_0x33de('0x31')]);_0x2bd687[_0x33de('0x34')]=_[_0x33de('0x30')](_0x277bb7[_0x33de('0x32')],qs['fields'](_0x7ad0c1[_0x33de('0x31')][_0x33de('0x33')]));_0x2bd687['attributes']=_0x2bd687[_0x33de('0x34')][_0x33de('0x35')]?_0x2bd687['attributes']:_0x277bb7[_0x33de('0x32')];_0x2bd687[_0x33de('0x55')]=qs['sort'](_0x7ad0c1['query'][_0x33de('0x37')]);_0x2bd687['where']=qs[_0x33de('0x2f')](_['pick'](_0x7ad0c1[_0x33de('0x31')],_0x277bb7['filters']));if(_0x7ad0c1['query']['filter']){_0x2bd687['where']=_['merge'](_0x2bd687['where'],{'$or':_[_0x33de('0x2a')](_0x2bd687['attributes'],function(_0x1a5b4f){var _0x530b87={};_0x530b87[_0x1a5b4f]={'$like':'%'+_0x7ad0c1['query'][_0x33de('0x3a')]+'%'};return _0x530b87;})});}_0x2bd687=_[_0x33de('0x3b')]({},_0x2bd687,_0x7ad0c1[_0x33de('0x56')]);return _0x3a7c4a[_0x33de('0x53')](_0x2bd687);}})[_0x33de('0x23')](function(_0x2c127d){if(_0x2c127d){_0x125dd6=_0x2c127d[_0x33de('0x35')];if(!_0x7ad0c1[_0x33de('0x31')]['hasOwnProperty'](_0x33de('0x36'))){_0x2bd687['limit']=qs[_0x33de('0x1e')](_0x7ad0c1[_0x33de('0x31')][_0x33de('0x1e')]);_0x2bd687[_0x33de('0x1d')]=qs[_0x33de('0x1d')](_0x7ad0c1[_0x33de('0x31')][_0x33de('0x1d')]);}return _0x3a7c4a[_0x33de('0x53')](_0x2bd687);}})[_0x33de('0x23')](function(_0x2cfd36){if(_0x2cfd36){return _0x2cfd36?{'count':_0x125dd6,'rows':_0x2cfd36}:null;}})[_0x33de('0x23')](respondWithResult(_0x5395a7,null))['catch'](handleError(_0x5395a7,null));};exports['addIntervals']=function(_0x516a33,_0x1179f6,_0x371ced){return db[_0x33de('0x2b')][_0x33de('0x54')]({'where':{'id':_0x516a33[_0x33de('0x50')]['id']}})[_0x33de('0x23')](handleEntityNotFound(_0x1179f6,null))[_0x33de('0x23')](function(_0x1b3166){if(_0x1b3166){return db[_0x33de('0x57')]['transaction'](function(_0x174636){return db[_0x33de('0x2b')][_0x33de('0x24')]({'where':{'IntervalId':_0x516a33[_0x33de('0x50')]['id']},'transaction':_0x174636})[_0x33de('0x23')](function(_0x2541d3){var _0x4c38ae=_['map'](_0x516a33['body'],function(_0x1370ac){delete _0x1370ac['id'];_0x1370ac[_0x33de('0x52')]=_0x516a33[_0x33de('0x50')]['id'];return _0x1370ac;});return db[_0x33de('0x2b')]['bulkCreate'](_0x4c38ae,{'transaction':_0x174636});});})[_0x33de('0x23')](function(){return db[_0x33de('0x2b')]['findAll']({'where':{'IntervalId':_0x516a33['params']['id']}});});}})['then'](respondWithResult(_0x1179f6,null))[_0x33de('0x40')](handleError(_0x1179f6,null));};