47a65aab85238ee82eecedabb8aeec3bfcc26226
[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 _0xc950=['desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../components/extensions/rewrite','sendStatus','end','status','offset','limit','set','Content-Range','json','apply','save','update','then','destroy','get','Intervals','name','index','map','Interval','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','show','params','rawAttributes','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addInterval','findOne','order','getIntervals','addIntervals','transaction','IntervalId','bulkCreate','html-pdf','rimraf','fast-json-patch','request-promise','mustache','util','sox','to-csv','ejs','lodash','squel','crypto'];(function(_0x1caf6a,_0x26a5bf){var _0x1bf493=function(_0x3982f5){while(--_0x3982f5){_0x1caf6a['push'](_0x1caf6a['shift']());}};_0x1bf493(++_0x26a5bf);}(_0xc950,0xfc));var _0x0c95=function(_0x45dc41,_0x4a05e1){_0x45dc41=_0x45dc41-0x0;var _0x3bffe0=_0xc950[_0x45dc41];return _0x3bffe0;};'use strict';var pdf=require(_0x0c95('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x0c95('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x0c95('0x2'));var rp=require(_0x0c95('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x0c95('0x4'));var util=require(_0x0c95('0x5'));var path=require('path');var sox=require(_0x0c95('0x6'));var csv=require(_0x0c95('0x7'));var ejs=require(_0x0c95('0x8'));var fs=require('fs');var _=require(_0x0c95('0x9'));var squel=require(_0x0c95('0xa'));var crypto=require(_0x0c95('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x0c95('0xc'));var toCsv=require('to-csv');var querystring=require(_0x0c95('0xd'));var Papa=require(_0x0c95('0xe'));var Redis=require(_0x0c95('0xf'));var authService=require(_0x0c95('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x0c95('0x11'));var hardwareService=require(_0x0c95('0x12'));var logger=require(_0x0c95('0x13'))(_0x0c95('0x14'));var utils=require(_0x0c95('0x15'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];var extensions=require(_0x0c95('0x16'));function respondWithStatusCode(_0x125661,_0x5eaf93){_0x5eaf93=_0x5eaf93||0xcc;return function(_0x2faacb){if(_0x2faacb){return _0x125661[_0x0c95('0x17')](_0x5eaf93);}return _0x125661['status'](_0x5eaf93)[_0x0c95('0x18')]();};}function respondWithResult(_0x165fb4,_0x31c859){_0x31c859=_0x31c859||0xc8;return function(_0x3c353f){if(_0x3c353f){return _0x165fb4[_0x0c95('0x19')](_0x31c859)['json'](_0x3c353f);}};}function respondWithFilteredResult(_0xa734f8,_0x2dc570){return function(_0x2fc983){if(_0x2fc983){var _0x1cc432=_0x2fc983['count'],_0x469e26=_0x2dc570[_0x0c95('0x1a')],_0x1e7a00=_0x2dc570['offset']+_0x2dc570[_0x0c95('0x1b')],_0x14fdb0;if(_0x1e7a00>=_0x1cc432){_0x1e7a00=_0x1cc432;_0x14fdb0=0xc8;}else{_0x14fdb0=0xce;}_0xa734f8['status'](_0x14fdb0);return _0xa734f8[_0x0c95('0x1c')](_0x0c95('0x1d'),_0x469e26+'-'+_0x1e7a00+'/'+_0x1cc432)[_0x0c95('0x1e')](_0x2fc983);}return null;};}function patchUpdates(_0xab86eb){return function(_0x3321a9){try{jsonpatch[_0x0c95('0x1f')](_0x3321a9,_0xab86eb,!![]);}catch(_0x30b35d){return BPromise['reject'](_0x30b35d);}return _0x3321a9[_0x0c95('0x20')]();};}function saveUpdates(_0x538aec,_0xae6997){return function(_0x9c6c26){if(_0x9c6c26){return _0x9c6c26[_0x0c95('0x21')](_0x538aec)[_0x0c95('0x22')](function(_0xb8e959){return _0xb8e959;});}return null;};}function removeEntity(_0x1843b7,_0x27040f){return function(_0x21dd0a){if(_0x21dd0a){return _0x21dd0a[_0x0c95('0x23')]()[_0x0c95('0x22')](function(){var _0x43068c=_0x21dd0a[_0x0c95('0x24')]({'plain':!![]});var _0xec18b9=_0x0c95('0x25');return db['UserProfileResource'][_0x0c95('0x23')]({'where':{'type':_0xec18b9,'resourceId':_0x43068c['id']}})[_0x0c95('0x22')](function(){return _0x21dd0a;});})[_0x0c95('0x22')](function(){_0x1843b7[_0x0c95('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3d5db2,_0x153e60){return function(_0x37a7aa){if(!_0x37a7aa){_0x3d5db2[_0x0c95('0x17')](0x194);}return _0x37a7aa;};}function handleError(_0x428309,_0x22d7ef){_0x22d7ef=_0x22d7ef||0x1f4;return function(_0x8180dc){logger['error'](_0x8180dc['stack']);if(_0x8180dc[_0x0c95('0x26')]){delete _0x8180dc[_0x0c95('0x26')];}_0x428309['status'](_0x22d7ef)['send'](_0x8180dc);};}exports[_0x0c95('0x27')]=function(_0x4a49e4,_0x49192b){var _0xe5bf56={},_0x4efcdb={},_0x624716={'count':0x0,'rows':[]};var _0x7c8467=_[_0x0c95('0x28')](db[_0x0c95('0x29')]['rawAttributes'],function(_0x54dd2c){return{'name':_0x54dd2c[_0x0c95('0x2a')],'type':_0x54dd2c[_0x0c95('0x2b')][_0x0c95('0x2c')]};});_0x4efcdb[_0x0c95('0x2d')]=_['map'](_0x7c8467,_0x0c95('0x26'));_0x4efcdb[_0x0c95('0x2e')]=_[_0x0c95('0x2f')](_0x4a49e4[_0x0c95('0x2e')]);_0x4efcdb[_0x0c95('0x30')]=_[_0x0c95('0x31')](_0x4efcdb[_0x0c95('0x2d')],_0x4efcdb[_0x0c95('0x2e')]);_0xe5bf56[_0x0c95('0x32')]=_[_0x0c95('0x31')](_0x4efcdb[_0x0c95('0x2d')],qs[_0x0c95('0x33')](_0x4a49e4['query']['fields']));_0xe5bf56[_0x0c95('0x32')]=_0xe5bf56[_0x0c95('0x32')][_0x0c95('0x34')]?_0xe5bf56[_0x0c95('0x32')]:_0x4efcdb[_0x0c95('0x2d')];if(!_0x4a49e4[_0x0c95('0x2e')][_0x0c95('0x35')]('nolimit')){_0xe5bf56[_0x0c95('0x1b')]=qs[_0x0c95('0x1b')](_0x4a49e4[_0x0c95('0x2e')][_0x0c95('0x1b')]);_0xe5bf56[_0x0c95('0x1a')]=qs[_0x0c95('0x1a')](_0x4a49e4[_0x0c95('0x2e')]['offset']);}_0xe5bf56['order']=qs[_0x0c95('0x36')](_0x4a49e4[_0x0c95('0x2e')][_0x0c95('0x36')]);_0xe5bf56[_0x0c95('0x37')]=qs[_0x0c95('0x30')](_[_0x0c95('0x38')](_0x4a49e4[_0x0c95('0x2e')],_0x4efcdb[_0x0c95('0x30')]),_0x7c8467);if(_0x4a49e4[_0x0c95('0x2e')][_0x0c95('0x39')]){_0xe5bf56[_0x0c95('0x37')]=_[_0x0c95('0x3a')](_0xe5bf56[_0x0c95('0x37')],{'$or':_['map'](_0x7c8467,function(_0x3be70c){if(_0x3be70c[_0x0c95('0x2b')]!==_0x0c95('0x3b')){var _0x44015e={};_0x44015e[_0x3be70c[_0x0c95('0x26')]]={'$like':'%'+_0x4a49e4[_0x0c95('0x2e')]['filter']+'%'};return _0x44015e;}})});}_0xe5bf56=_['merge']({},_0xe5bf56,_0x4a49e4[_0x0c95('0x3c')]);var _0x19d761={'where':_0xe5bf56[_0x0c95('0x37')]};return db[_0x0c95('0x29')][_0x0c95('0x3d')](_0x19d761)[_0x0c95('0x22')](function(_0xba5fab){_0x624716[_0x0c95('0x3d')]=_0xba5fab;if(_0x4a49e4['query'][_0x0c95('0x3e')]){_0xe5bf56[_0x0c95('0x3f')]=[{'all':!![]}];}return db[_0x0c95('0x29')][_0x0c95('0x40')](_0xe5bf56);})[_0x0c95('0x22')](function(_0x5c43a2){_0x624716['rows']=_0x5c43a2;return _0x624716;})[_0x0c95('0x22')](respondWithFilteredResult(_0x49192b,_0xe5bf56))['catch'](handleError(_0x49192b,null));};exports[_0x0c95('0x41')]=function(_0x370f21,_0x242672){var _0x2de39a={'raw':!![],'where':{'id':_0x370f21[_0x0c95('0x42')]['id']}},_0x86ff92={};_0x86ff92['model']=_[_0x0c95('0x2f')](db['Interval'][_0x0c95('0x43')]);_0x86ff92[_0x0c95('0x2e')]=_[_0x0c95('0x2f')](_0x370f21[_0x0c95('0x2e')]);_0x86ff92[_0x0c95('0x30')]=_[_0x0c95('0x31')](_0x86ff92[_0x0c95('0x2d')],_0x86ff92[_0x0c95('0x2e')]);_0x2de39a[_0x0c95('0x32')]=_[_0x0c95('0x31')](_0x86ff92[_0x0c95('0x2d')],qs[_0x0c95('0x33')](_0x370f21[_0x0c95('0x2e')]['fields']));_0x2de39a[_0x0c95('0x32')]=_0x2de39a['attributes']['length']?_0x2de39a[_0x0c95('0x32')]:_0x86ff92[_0x0c95('0x2d')];if(_0x370f21[_0x0c95('0x2e')][_0x0c95('0x3e')]){_0x2de39a['include']=[{'all':!![]}];}_0x2de39a=_[_0x0c95('0x3a')]({},_0x2de39a,_0x370f21[_0x0c95('0x3c')]);return db['Interval'][_0x0c95('0x44')](_0x2de39a)[_0x0c95('0x22')](handleEntityNotFound(_0x242672,null))[_0x0c95('0x22')](respondWithResult(_0x242672,null))[_0x0c95('0x45')](handleError(_0x242672,null));};exports['create']=function(_0x125c37,_0x5a7f5c){return db[_0x0c95('0x29')][_0x0c95('0x46')](_0x125c37['body'],{})[_0x0c95('0x22')](function(_0x46e969){var _0x3ce5e4=_0x125c37[_0x0c95('0x47')]['get']({'plain':!![]});if(!_0x3ce5e4)throw new Error(_0x0c95('0x48'));if(_0x3ce5e4[_0x0c95('0x49')]==='user'){var _0x47bb7a=_0x46e969[_0x0c95('0x24')]({'plain':!![]});var _0xaf1caf=_0x0c95('0x25');return db[_0x0c95('0x4a')][_0x0c95('0x44')]({'where':{'name':_0xaf1caf,'userProfileId':_0x3ce5e4[_0x0c95('0x4b')]},'raw':!![]})['then'](function(_0x29d8a3){if(_0x29d8a3&&_0x29d8a3[_0x0c95('0x4c')]===0x0){return db[_0x0c95('0x4d')][_0x0c95('0x46')]({'name':_0x47bb7a[_0x0c95('0x26')],'resourceId':_0x47bb7a['id'],'type':_0x29d8a3[_0x0c95('0x26')],'sectionId':_0x29d8a3['id']},{})[_0x0c95('0x22')](function(){return _0x46e969;});}else{return _0x46e969;}})[_0x0c95('0x45')](function(_0x1df4a7){logger['error'](_0x0c95('0x4e'),_0x1df4a7);throw _0x1df4a7;});}return _0x46e969;})[_0x0c95('0x22')](respondWithResult(_0x5a7f5c,0xc9))['catch'](handleError(_0x5a7f5c,null));};exports[_0x0c95('0x21')]=function(_0x361279,_0x2773af){if(_0x361279[_0x0c95('0x4f')]['id']){delete _0x361279[_0x0c95('0x4f')]['id'];}return db[_0x0c95('0x29')][_0x0c95('0x44')]({'where':{'id':_0x361279[_0x0c95('0x42')]['id']}})[_0x0c95('0x22')](handleEntityNotFound(_0x2773af,null))[_0x0c95('0x22')](saveUpdates(_0x361279[_0x0c95('0x4f')],null))[_0x0c95('0x22')](respondWithResult(_0x2773af,null))['catch'](handleError(_0x2773af,null));};exports[_0x0c95('0x23')]=function(_0x3992bf,_0x180762){return db[_0x0c95('0x29')]['find']({'where':{'id':_0x3992bf[_0x0c95('0x42')]['id']}})[_0x0c95('0x22')](handleEntityNotFound(_0x180762,null))[_0x0c95('0x22')](removeEntity(_0x180762,null))[_0x0c95('0x45')](handleError(_0x180762,null));};exports[_0x0c95('0x50')]=function(_0x1e0f76,_0x3873ee,_0x3355bc){if(_0x1e0f76[_0x0c95('0x4f')]['id']){delete _0x1e0f76[_0x0c95('0x4f')]['id'];}return db[_0x0c95('0x29')][_0x0c95('0x44')]({'where':{'id':_0x1e0f76['params']['id']}})[_0x0c95('0x22')](handleEntityNotFound(_0x3873ee,null))[_0x0c95('0x22')](function(_0x171161){if(_0x171161){_0x1e0f76[_0x0c95('0x4f')]['IntervalId']=_0x171161['id'];return db[_0x0c95('0x29')][_0x0c95('0x46')](_0x1e0f76[_0x0c95('0x4f')]);}})[_0x0c95('0x22')](respondWithResult(_0x3873ee,null))[_0x0c95('0x45')](handleError(_0x3873ee,null));};exports['getIntervals']=function(_0x1350de,_0x364de8,_0x288fef){var _0x2addf7={};var _0x8e5b4a={};var _0x4a272a;var _0x1ec637;return db[_0x0c95('0x29')][_0x0c95('0x51')]({'where':{'id':_0x1350de[_0x0c95('0x42')]['id']}})['then'](handleEntityNotFound(_0x364de8,null))[_0x0c95('0x22')](function(_0x213c69){if(_0x213c69){_0x4a272a=_0x213c69;_0x8e5b4a[_0x0c95('0x2d')]=_['keys'](db[_0x0c95('0x29')]['rawAttributes']);_0x8e5b4a[_0x0c95('0x2e')]=_[_0x0c95('0x2f')](_0x1350de['query']);_0x8e5b4a['filters']=_[_0x0c95('0x31')](_0x8e5b4a[_0x0c95('0x2d')],_0x8e5b4a[_0x0c95('0x2e')]);_0x2addf7[_0x0c95('0x32')]=_[_0x0c95('0x31')](_0x8e5b4a[_0x0c95('0x2d')],qs[_0x0c95('0x33')](_0x1350de[_0x0c95('0x2e')][_0x0c95('0x33')]));_0x2addf7[_0x0c95('0x32')]=_0x2addf7[_0x0c95('0x32')]['length']?_0x2addf7['attributes']:_0x8e5b4a[_0x0c95('0x2d')];_0x2addf7[_0x0c95('0x52')]=qs[_0x0c95('0x36')](_0x1350de['query']['sort']);_0x2addf7['where']=qs[_0x0c95('0x30')](_[_0x0c95('0x38')](_0x1350de[_0x0c95('0x2e')],_0x8e5b4a[_0x0c95('0x30')]));if(_0x1350de['query']['filter']){_0x2addf7[_0x0c95('0x37')]=_['merge'](_0x2addf7[_0x0c95('0x37')],{'$or':_[_0x0c95('0x28')](_0x2addf7[_0x0c95('0x32')],function(_0x220951){var _0x2b3afd={};_0x2b3afd[_0x220951]={'$like':'%'+_0x1350de['query'][_0x0c95('0x39')]+'%'};return _0x2b3afd;})});}_0x2addf7=_[_0x0c95('0x3a')]({},_0x2addf7,_0x1350de['options']);return _0x4a272a[_0x0c95('0x53')](_0x2addf7);}})[_0x0c95('0x22')](function(_0x40381a){if(_0x40381a){_0x1ec637=_0x40381a[_0x0c95('0x34')];if(!_0x1350de['query'][_0x0c95('0x35')]('nolimit')){_0x2addf7['limit']=qs[_0x0c95('0x1b')](_0x1350de[_0x0c95('0x2e')][_0x0c95('0x1b')]);_0x2addf7[_0x0c95('0x1a')]=qs[_0x0c95('0x1a')](_0x1350de[_0x0c95('0x2e')][_0x0c95('0x1a')]);}return _0x4a272a[_0x0c95('0x53')](_0x2addf7);}})[_0x0c95('0x22')](function(_0x1c6756){if(_0x1c6756){return _0x1c6756?{'count':_0x1ec637,'rows':_0x1c6756}:null;}})[_0x0c95('0x22')](respondWithResult(_0x364de8,null))[_0x0c95('0x45')](handleError(_0x364de8,null));};exports[_0x0c95('0x54')]=function(_0x991379,_0xe4f944,_0x2b1f1b){return db['Interval'][_0x0c95('0x51')]({'where':{'id':_0x991379[_0x0c95('0x42')]['id']}})['then'](handleEntityNotFound(_0xe4f944,null))[_0x0c95('0x22')](function(_0x59bb3d){if(_0x59bb3d){return db['sequelize'][_0x0c95('0x55')](function(_0x492c14){return db['Interval']['destroy']({'where':{'IntervalId':_0x991379[_0x0c95('0x42')]['id']},'transaction':_0x492c14})['then'](function(_0x3c4779){var _0x3fa9b5=_[_0x0c95('0x28')](_0x991379[_0x0c95('0x4f')],function(_0x1554fc){delete _0x1554fc['id'];_0x1554fc[_0x0c95('0x56')]=_0x991379[_0x0c95('0x42')]['id'];return _0x1554fc;});return db[_0x0c95('0x29')][_0x0c95('0x57')](_0x3fa9b5,{'transaction':_0x492c14});});})['then'](function(){return db[_0x0c95('0x29')][_0x0c95('0x40')]({'where':{'IntervalId':_0x991379[_0x0c95('0x42')]['id']}});});}})[_0x0c95('0x22')](respondWithResult(_0xe4f944,null))[_0x0c95('0x45')](handleError(_0xe4f944,null));};