e0f4e4f9f0945a8f5491d964aff8344763aee19f
[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 _0x44e6=['autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','findOne','getIntervals','addIntervals','sequelize','transaction','IntervalId','bulkCreate','html-pdf','eml-format','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','then','destroy','Intervals','stack','name','send','Interval','rawAttributes','fieldName','type','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','map','filter','options','include','findAll','rows','show','params','includeAll','catch','create','body','get','role','user','UserProfileSection','find','userProfileId'];(function(_0x204b3b,_0x90528c){var _0x212141=function(_0x2aa809){while(--_0x2aa809){_0x204b3b['push'](_0x204b3b['shift']());}};_0x212141(++_0x90528c);}(_0x44e6,0x113));var _0x644e=function(_0x17e490,_0x313ba0){_0x17e490=_0x17e490-0x0;var _0x197162=_0x44e6[_0x17e490];return _0x197162;};'use strict';var pdf=require(_0x644e('0x0'));var emlformat=require(_0x644e('0x1'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x644e('0x2'));var BPromise=require(_0x644e('0x3'));var Mustache=require(_0x644e('0x4'));var util=require(_0x644e('0x5'));var path=require(_0x644e('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x644e('0x7'));var fs=require('fs');var _=require(_0x644e('0x8'));var squel=require(_0x644e('0x9'));var crypto=require(_0x644e('0xa'));var jsforce=require(_0x644e('0xb'));var deskjs=require(_0x644e('0xc'));var toCsv=require('to-csv');var querystring=require(_0x644e('0xd'));var Papa=require(_0x644e('0xe'));var Redis=require('ioredis');var authService=require(_0x644e('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x644e('0x10'));var hardwareService=require(_0x644e('0x11'));var logger=require(_0x644e('0x12'))('api');var utils=require(_0x644e('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x644e('0x14'));var db=require(_0x644e('0x15'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x27cb49,_0x2cea44){_0x2cea44=_0x2cea44||0xcc;return function(_0xfee823){if(_0xfee823){return _0x27cb49[_0x644e('0x16')](_0x2cea44);}return _0x27cb49[_0x644e('0x17')](_0x2cea44)[_0x644e('0x18')]();};}function respondWithResult(_0x272100,_0x5d19d8){_0x5d19d8=_0x5d19d8||0xc8;return function(_0x3d8682){if(_0x3d8682){return _0x272100[_0x644e('0x17')](_0x5d19d8)[_0x644e('0x19')](_0x3d8682);}};}function respondWithFilteredResult(_0x5dddda,_0x34bd92){return function(_0x291bbf){if(_0x291bbf){var _0x1c9aec=_0x291bbf[_0x644e('0x1a')],_0x1dd54a=_0x34bd92[_0x644e('0x1b')],_0x3f79bb=_0x34bd92[_0x644e('0x1b')]+_0x34bd92[_0x644e('0x1c')],_0x1df3c1;if(_0x3f79bb>=_0x1c9aec){_0x3f79bb=_0x1c9aec;_0x1df3c1=0xc8;}else{_0x1df3c1=0xce;}_0x5dddda[_0x644e('0x17')](_0x1df3c1);return _0x5dddda[_0x644e('0x1d')](_0x644e('0x1e'),_0x1dd54a+'-'+_0x3f79bb+'/'+_0x1c9aec)[_0x644e('0x19')](_0x291bbf);}return null;};}function patchUpdates(_0x5e8618){return function(_0x39d2b1){try{jsonpatch[_0x644e('0x1f')](_0x39d2b1,_0x5e8618,!![]);}catch(_0x223f22){return BPromise[_0x644e('0x20')](_0x223f22);}return _0x39d2b1[_0x644e('0x21')]();};}function saveUpdates(_0x435a2b,_0x1a6fa1){return function(_0x1121fe){if(_0x1121fe){return _0x1121fe['update'](_0x435a2b)[_0x644e('0x22')](function(_0x522023){return _0x522023;});}return null;};}function removeEntity(_0x5201ee,_0x23960c){return function(_0x3237a4){if(_0x3237a4){return _0x3237a4[_0x644e('0x23')]()['then'](function(){var _0xd4948b=_0x3237a4['get']({'plain':!![]});var _0x5656ce=_0x644e('0x24');return db['UserProfileResource'][_0x644e('0x23')]({'where':{'type':_0x5656ce,'resourceId':_0xd4948b['id']}})['then'](function(){return _0x3237a4;});})['then'](function(){_0x5201ee[_0x644e('0x17')](0xcc)[_0x644e('0x18')]();});}};}function handleEntityNotFound(_0x1b0f6b,_0x585af4){return function(_0x528254){if(!_0x528254){_0x1b0f6b[_0x644e('0x16')](0x194);}return _0x528254;};}function handleError(_0x478237,_0x28c748){_0x28c748=_0x28c748||0x1f4;return function(_0x3c0599){logger['error'](_0x3c0599[_0x644e('0x25')]);if(_0x3c0599[_0x644e('0x26')]){delete _0x3c0599[_0x644e('0x26')];}_0x478237[_0x644e('0x17')](_0x28c748)[_0x644e('0x27')](_0x3c0599);};}exports['index']=function(_0x59c3e3,_0x26af4f){var _0x555edf={},_0x510195={},_0x378a85={'count':0x0,'rows':[]};var _0xd9fd40=_['map'](db[_0x644e('0x28')][_0x644e('0x29')],function(_0x47d6c8){return{'name':_0x47d6c8[_0x644e('0x2a')],'type':_0x47d6c8[_0x644e('0x2b')]['key']};});_0x510195[_0x644e('0x2c')]=_['map'](_0xd9fd40,_0x644e('0x26'));_0x510195['query']=_[_0x644e('0x2d')](_0x59c3e3[_0x644e('0x2e')]);_0x510195[_0x644e('0x2f')]=_['intersection'](_0x510195[_0x644e('0x2c')],_0x510195['query']);_0x555edf[_0x644e('0x30')]=_[_0x644e('0x31')](_0x510195[_0x644e('0x2c')],qs[_0x644e('0x32')](_0x59c3e3[_0x644e('0x2e')][_0x644e('0x32')]));_0x555edf[_0x644e('0x30')]=_0x555edf['attributes'][_0x644e('0x33')]?_0x555edf[_0x644e('0x30')]:_0x510195[_0x644e('0x2c')];if(!_0x59c3e3['query'][_0x644e('0x34')](_0x644e('0x35'))){_0x555edf['limit']=qs['limit'](_0x59c3e3['query'][_0x644e('0x1c')]);_0x555edf['offset']=qs[_0x644e('0x1b')](_0x59c3e3[_0x644e('0x2e')][_0x644e('0x1b')]);}_0x555edf[_0x644e('0x36')]=qs[_0x644e('0x37')](_0x59c3e3[_0x644e('0x2e')][_0x644e('0x37')]);_0x555edf[_0x644e('0x38')]=qs[_0x644e('0x2f')](_[_0x644e('0x39')](_0x59c3e3[_0x644e('0x2e')],_0x510195['filters']),_0xd9fd40);if(_0x59c3e3['query']['filter']){_0x555edf['where']=_[_0x644e('0x3a')](_0x555edf['where'],{'$or':_[_0x644e('0x3b')](_0xd9fd40,function(_0x1b00aa){if(_0x1b00aa[_0x644e('0x2b')]!=='VIRTUAL'){var _0x1a78ae={};_0x1a78ae[_0x1b00aa['name']]={'$like':'%'+_0x59c3e3['query'][_0x644e('0x3c')]+'%'};return _0x1a78ae;}})});}_0x555edf=_[_0x644e('0x3a')]({},_0x555edf,_0x59c3e3[_0x644e('0x3d')]);var _0x13dcd2={'where':_0x555edf[_0x644e('0x38')]};return db['Interval'][_0x644e('0x1a')](_0x13dcd2)[_0x644e('0x22')](function(_0x38414e){_0x378a85[_0x644e('0x1a')]=_0x38414e;if(_0x59c3e3[_0x644e('0x2e')]['includeAll']){_0x555edf[_0x644e('0x3e')]=[{'all':!![]}];}return db[_0x644e('0x28')][_0x644e('0x3f')](_0x555edf);})[_0x644e('0x22')](function(_0x3c5324){_0x378a85[_0x644e('0x40')]=_0x3c5324;return _0x378a85;})[_0x644e('0x22')](respondWithFilteredResult(_0x26af4f,_0x555edf))['catch'](handleError(_0x26af4f,null));};exports[_0x644e('0x41')]=function(_0x4f040b,_0x5adaa7){var _0x4319c2={'raw':!![],'where':{'id':_0x4f040b[_0x644e('0x42')]['id']}},_0xaa73fb={};_0xaa73fb[_0x644e('0x2c')]=_[_0x644e('0x2d')](db['Interval'][_0x644e('0x29')]);_0xaa73fb[_0x644e('0x2e')]=_['keys'](_0x4f040b[_0x644e('0x2e')]);_0xaa73fb[_0x644e('0x2f')]=_['intersection'](_0xaa73fb[_0x644e('0x2c')],_0xaa73fb['query']);_0x4319c2[_0x644e('0x30')]=_[_0x644e('0x31')](_0xaa73fb[_0x644e('0x2c')],qs[_0x644e('0x32')](_0x4f040b[_0x644e('0x2e')]['fields']));_0x4319c2[_0x644e('0x30')]=_0x4319c2[_0x644e('0x30')][_0x644e('0x33')]?_0x4319c2[_0x644e('0x30')]:_0xaa73fb[_0x644e('0x2c')];if(_0x4f040b[_0x644e('0x2e')][_0x644e('0x43')]){_0x4319c2['include']=[{'all':!![]}];}_0x4319c2=_[_0x644e('0x3a')]({},_0x4319c2,_0x4f040b['options']);return db['Interval']['find'](_0x4319c2)[_0x644e('0x22')](handleEntityNotFound(_0x5adaa7,null))[_0x644e('0x22')](respondWithResult(_0x5adaa7,null))[_0x644e('0x44')](handleError(_0x5adaa7,null));};exports[_0x644e('0x45')]=function(_0x3e0e87,_0xa29fdc){return db[_0x644e('0x28')][_0x644e('0x45')](_0x3e0e87[_0x644e('0x46')],{})[_0x644e('0x22')](function(_0x1743bc){var _0x3af7e1=_0x3e0e87['user'][_0x644e('0x47')]({'plain':!![]});if(!_0x3af7e1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3af7e1[_0x644e('0x48')]===_0x644e('0x49')){var _0x19acdf=_0x1743bc[_0x644e('0x47')]({'plain':!![]});var _0x5a34c9=_0x644e('0x24');return db[_0x644e('0x4a')][_0x644e('0x4b')]({'where':{'name':_0x5a34c9,'userProfileId':_0x3af7e1[_0x644e('0x4c')]},'raw':!![]})[_0x644e('0x22')](function(_0x3fc1d6){if(_0x3fc1d6&&_0x3fc1d6[_0x644e('0x4d')]===0x0){return db['UserProfileResource'][_0x644e('0x45')]({'name':_0x19acdf[_0x644e('0x26')],'resourceId':_0x19acdf['id'],'type':_0x3fc1d6['name'],'sectionId':_0x3fc1d6['id']},{})['then'](function(){return _0x1743bc;});}else{return _0x1743bc;}})[_0x644e('0x44')](function(_0x1db0d8){logger[_0x644e('0x4e')](_0x644e('0x4f'),_0x1db0d8);throw _0x1db0d8;});}return _0x1743bc;})[_0x644e('0x22')](respondWithResult(_0xa29fdc,0xc9))[_0x644e('0x44')](handleError(_0xa29fdc,null));};exports[_0x644e('0x50')]=function(_0x15e872,_0x1e6fca){if(_0x15e872[_0x644e('0x46')]['id']){delete _0x15e872[_0x644e('0x46')]['id'];}return db['Interval']['find']({'where':{'id':_0x15e872[_0x644e('0x42')]['id']}})[_0x644e('0x22')](handleEntityNotFound(_0x1e6fca,null))[_0x644e('0x22')](saveUpdates(_0x15e872[_0x644e('0x46')],null))[_0x644e('0x22')](respondWithResult(_0x1e6fca,null))[_0x644e('0x44')](handleError(_0x1e6fca,null));};exports[_0x644e('0x23')]=function(_0x54fd88,_0x77389d){return db[_0x644e('0x28')][_0x644e('0x4b')]({'where':{'id':_0x54fd88[_0x644e('0x42')]['id']}})[_0x644e('0x22')](handleEntityNotFound(_0x77389d,null))[_0x644e('0x22')](removeEntity(_0x77389d,null))[_0x644e('0x44')](handleError(_0x77389d,null));};exports['addInterval']=function(_0x378c7f,_0x186da2,_0x5c8ad6){if(_0x378c7f['body']['id']){delete _0x378c7f['body']['id'];}return db['Interval'][_0x644e('0x4b')]({'where':{'id':_0x378c7f[_0x644e('0x42')]['id']}})[_0x644e('0x22')](handleEntityNotFound(_0x186da2,null))['then'](function(_0x2ba3b7){if(_0x2ba3b7){_0x378c7f[_0x644e('0x46')]['IntervalId']=_0x2ba3b7['id'];return db[_0x644e('0x28')][_0x644e('0x45')](_0x378c7f[_0x644e('0x46')]);}})['then'](respondWithResult(_0x186da2,null))[_0x644e('0x44')](handleError(_0x186da2,null));};exports['getIntervals']=function(_0x3c3813,_0x53ec10,_0x1047a7){var _0x240793={};var _0x5548fb={};var _0xd7602a;var _0x4ad34c;return db[_0x644e('0x28')][_0x644e('0x51')]({'where':{'id':_0x3c3813[_0x644e('0x42')]['id']}})[_0x644e('0x22')](handleEntityNotFound(_0x53ec10,null))[_0x644e('0x22')](function(_0x4990fa){if(_0x4990fa){_0xd7602a=_0x4990fa;_0x5548fb[_0x644e('0x2c')]=_[_0x644e('0x2d')](db[_0x644e('0x28')]['rawAttributes']);_0x5548fb[_0x644e('0x2e')]=_[_0x644e('0x2d')](_0x3c3813[_0x644e('0x2e')]);_0x5548fb[_0x644e('0x2f')]=_[_0x644e('0x31')](_0x5548fb[_0x644e('0x2c')],_0x5548fb['query']);_0x240793['attributes']=_[_0x644e('0x31')](_0x5548fb[_0x644e('0x2c')],qs['fields'](_0x3c3813[_0x644e('0x2e')][_0x644e('0x32')]));_0x240793[_0x644e('0x30')]=_0x240793[_0x644e('0x30')][_0x644e('0x33')]?_0x240793[_0x644e('0x30')]:_0x5548fb[_0x644e('0x2c')];_0x240793['order']=qs[_0x644e('0x37')](_0x3c3813['query'][_0x644e('0x37')]);_0x240793[_0x644e('0x38')]=qs[_0x644e('0x2f')](_['pick'](_0x3c3813['query'],_0x5548fb[_0x644e('0x2f')]));if(_0x3c3813['query'][_0x644e('0x3c')]){_0x240793[_0x644e('0x38')]=_[_0x644e('0x3a')](_0x240793['where'],{'$or':_['map'](_0x240793[_0x644e('0x30')],function(_0x534de7){var _0x1fe76a={};_0x1fe76a[_0x534de7]={'$like':'%'+_0x3c3813[_0x644e('0x2e')][_0x644e('0x3c')]+'%'};return _0x1fe76a;})});}_0x240793=_[_0x644e('0x3a')]({},_0x240793,_0x3c3813[_0x644e('0x3d')]);return _0xd7602a[_0x644e('0x52')](_0x240793);}})[_0x644e('0x22')](function(_0x39133e){if(_0x39133e){_0x4ad34c=_0x39133e[_0x644e('0x33')];if(!_0x3c3813[_0x644e('0x2e')][_0x644e('0x34')](_0x644e('0x35'))){_0x240793['limit']=qs[_0x644e('0x1c')](_0x3c3813['query'][_0x644e('0x1c')]);_0x240793[_0x644e('0x1b')]=qs['offset'](_0x3c3813[_0x644e('0x2e')][_0x644e('0x1b')]);}return _0xd7602a[_0x644e('0x52')](_0x240793);}})['then'](function(_0x3d9c3e){if(_0x3d9c3e){return _0x3d9c3e?{'count':_0x4ad34c,'rows':_0x3d9c3e}:null;}})[_0x644e('0x22')](respondWithResult(_0x53ec10,null))['catch'](handleError(_0x53ec10,null));};exports[_0x644e('0x53')]=function(_0x585341,_0x302cee,_0x16c3a3){return db['Interval'][_0x644e('0x51')]({'where':{'id':_0x585341['params']['id']}})['then'](handleEntityNotFound(_0x302cee,null))[_0x644e('0x22')](function(_0x3c9e0b){if(_0x3c9e0b){return db[_0x644e('0x54')][_0x644e('0x55')](function(_0x1efc39){return db[_0x644e('0x28')]['destroy']({'where':{'IntervalId':_0x585341[_0x644e('0x42')]['id']},'transaction':_0x1efc39})[_0x644e('0x22')](function(_0x549f1e){var _0x5d63a7=_[_0x644e('0x3b')](_0x585341['body'],function(_0x2156c6){delete _0x2156c6['id'];_0x2156c6[_0x644e('0x56')]=_0x585341[_0x644e('0x42')]['id'];return _0x2156c6;});return db[_0x644e('0x28')][_0x644e('0x57')](_0x5d63a7,{'transaction':_0x1efc39});});})[_0x644e('0x22')](function(){return db[_0x644e('0x28')]['findAll']({'where':{'IntervalId':_0x585341['params']['id']}});});}})['then'](respondWithResult(_0x302cee,null))[_0x644e('0x44')](handleError(_0x302cee,null));};