27c8bd2315606cd190cc3da242f693e53b2866ed
[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 _0xc1a9=['bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','offset','set','Content-Range','apply','reject','save','update','then','destroy','get','Intervals','error','name','send','index','map','Interval','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','where','filters','pick','filter','merge','options','count','include','catch','show','params','rawAttributes','length','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId','findOne','getIntervals','addIntervals','sequelize','transaction','bulkCreate','findAll','html-pdf','eml-format','zip-dir','fast-json-patch','moment'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0xc1a9,0x16f));var _0x9c1a=function(_0x398294,_0x5ceb9d){_0x398294=_0x398294-0x0;var _0x2a872d=_0xc1a9[_0x398294];return _0x2a872d;};'use strict';var pdf=require(_0x9c1a('0x0'));var emlformat=require(_0x9c1a('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x9c1a('0x2'));var jsonpatch=require(_0x9c1a('0x3'));var rp=require('request-promise');var moment=require(_0x9c1a('0x4'));var BPromise=require(_0x9c1a('0x5'));var Mustache=require(_0x9c1a('0x6'));var util=require(_0x9c1a('0x7'));var path=require(_0x9c1a('0x8'));var sox=require(_0x9c1a('0x9'));var csv=require(_0x9c1a('0xa'));var ejs=require(_0x9c1a('0xb'));var fs=require('fs');var _=require(_0x9c1a('0xc'));var squel=require('squel');var crypto=require(_0x9c1a('0xd'));var jsforce=require(_0x9c1a('0xe'));var deskjs=require(_0x9c1a('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x9c1a('0x10'));var authService=require(_0x9c1a('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9c1a('0x12'));var logger=require(_0x9c1a('0x13'))('api');var utils=require(_0x9c1a('0x14'));var config=require(_0x9c1a('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x9c1a('0x16'))['db'];var extensions=require(_0x9c1a('0x17'));function respondWithStatusCode(_0x478130,_0x2b96bf){_0x2b96bf=_0x2b96bf||0xcc;return function(_0xf296bc){if(_0xf296bc){return _0x478130[_0x9c1a('0x18')](_0x2b96bf);}return _0x478130[_0x9c1a('0x19')](_0x2b96bf)[_0x9c1a('0x1a')]();};}function respondWithResult(_0x2c6049,_0x17467a){_0x17467a=_0x17467a||0xc8;return function(_0x21e6d6){if(_0x21e6d6){return _0x2c6049[_0x9c1a('0x19')](_0x17467a)[_0x9c1a('0x1b')](_0x21e6d6);}};}function respondWithFilteredResult(_0x5e9eb4,_0x160465){return function(_0x54c644){if(_0x54c644){var _0x49a876=_0x54c644['count'],_0x1a4c02=_0x160465[_0x9c1a('0x1c')],_0x6f499a=_0x160465[_0x9c1a('0x1c')]+_0x160465['limit'],_0x5e3006;if(_0x6f499a>=_0x49a876){_0x6f499a=_0x49a876;_0x5e3006=0xc8;}else{_0x5e3006=0xce;}_0x5e9eb4[_0x9c1a('0x19')](_0x5e3006);return _0x5e9eb4[_0x9c1a('0x1d')](_0x9c1a('0x1e'),_0x1a4c02+'-'+_0x6f499a+'/'+_0x49a876)[_0x9c1a('0x1b')](_0x54c644);}return null;};}function patchUpdates(_0x214bfe){return function(_0x26a303){try{jsonpatch[_0x9c1a('0x1f')](_0x26a303,_0x214bfe,!![]);}catch(_0x296d54){return BPromise[_0x9c1a('0x20')](_0x296d54);}return _0x26a303[_0x9c1a('0x21')]();};}function saveUpdates(_0x8b418a,_0xa92266){return function(_0x572dab){if(_0x572dab){return _0x572dab[_0x9c1a('0x22')](_0x8b418a)[_0x9c1a('0x23')](function(_0x4a7022){return _0x4a7022;});}return null;};}function removeEntity(_0x17931a,_0x47b1c4){return function(_0x26b1bc){if(_0x26b1bc){return _0x26b1bc[_0x9c1a('0x24')]()['then'](function(){var _0x7f4076=_0x26b1bc[_0x9c1a('0x25')]({'plain':!![]});var _0x15772e=_0x9c1a('0x26');return db['UserProfileResource'][_0x9c1a('0x24')]({'where':{'type':_0x15772e,'resourceId':_0x7f4076['id']}})[_0x9c1a('0x23')](function(){return _0x26b1bc;});})[_0x9c1a('0x23')](function(){_0x17931a[_0x9c1a('0x19')](0xcc)[_0x9c1a('0x1a')]();});}};}function handleEntityNotFound(_0x24cd6b,_0x2f6b32){return function(_0xf1a3e1){if(!_0xf1a3e1){_0x24cd6b['sendStatus'](0x194);}return _0xf1a3e1;};}function handleError(_0x23c392,_0x29ce22){_0x29ce22=_0x29ce22||0x1f4;return function(_0x3c8a1a){logger[_0x9c1a('0x27')](_0x3c8a1a['stack']);if(_0x3c8a1a[_0x9c1a('0x28')]){delete _0x3c8a1a[_0x9c1a('0x28')];}_0x23c392[_0x9c1a('0x19')](_0x29ce22)[_0x9c1a('0x29')](_0x3c8a1a);};}exports[_0x9c1a('0x2a')]=function(_0x303b8d,_0x596a0f){var _0x54b396={},_0xe6f011={},_0x230b93={'count':0x0,'rows':[]};var _0x236434=_[_0x9c1a('0x2b')](db[_0x9c1a('0x2c')]['rawAttributes'],function(_0x5ea995){return{'name':_0x5ea995[_0x9c1a('0x2d')],'type':_0x5ea995[_0x9c1a('0x2e')][_0x9c1a('0x2f')]};});_0xe6f011[_0x9c1a('0x30')]=_['map'](_0x236434,_0x9c1a('0x28'));_0xe6f011[_0x9c1a('0x31')]=_[_0x9c1a('0x32')](_0x303b8d[_0x9c1a('0x31')]);_0xe6f011['filters']=_[_0x9c1a('0x33')](_0xe6f011[_0x9c1a('0x30')],_0xe6f011['query']);_0x54b396[_0x9c1a('0x34')]=_[_0x9c1a('0x33')](_0xe6f011[_0x9c1a('0x30')],qs['fields'](_0x303b8d['query'][_0x9c1a('0x35')]));_0x54b396['attributes']=_0x54b396[_0x9c1a('0x34')]['length']?_0x54b396['attributes']:_0xe6f011[_0x9c1a('0x30')];if(!_0x303b8d[_0x9c1a('0x31')][_0x9c1a('0x36')](_0x9c1a('0x37'))){_0x54b396[_0x9c1a('0x38')]=qs[_0x9c1a('0x38')](_0x303b8d[_0x9c1a('0x31')][_0x9c1a('0x38')]);_0x54b396['offset']=qs['offset'](_0x303b8d[_0x9c1a('0x31')]['offset']);}_0x54b396[_0x9c1a('0x39')]=qs[_0x9c1a('0x3a')](_0x303b8d[_0x9c1a('0x31')][_0x9c1a('0x3a')]);_0x54b396[_0x9c1a('0x3b')]=qs[_0x9c1a('0x3c')](_[_0x9c1a('0x3d')](_0x303b8d['query'],_0xe6f011[_0x9c1a('0x3c')]),_0x236434);if(_0x303b8d['query'][_0x9c1a('0x3e')]){_0x54b396[_0x9c1a('0x3b')]=_[_0x9c1a('0x3f')](_0x54b396[_0x9c1a('0x3b')],{'$or':_[_0x9c1a('0x2b')](_0x236434,function(_0x137050){if(_0x137050[_0x9c1a('0x2e')]!=='VIRTUAL'){var _0x53beea={};_0x53beea[_0x137050[_0x9c1a('0x28')]]={'$like':'%'+_0x303b8d[_0x9c1a('0x31')][_0x9c1a('0x3e')]+'%'};return _0x53beea;}})});}_0x54b396=_[_0x9c1a('0x3f')]({},_0x54b396,_0x303b8d[_0x9c1a('0x40')]);var _0x2a57c8={'where':_0x54b396[_0x9c1a('0x3b')]};return db[_0x9c1a('0x2c')][_0x9c1a('0x41')](_0x2a57c8)['then'](function(_0x597cfa){_0x230b93['count']=_0x597cfa;if(_0x303b8d[_0x9c1a('0x31')]['includeAll']){_0x54b396[_0x9c1a('0x42')]=[{'all':!![]}];}return db['Interval']['findAll'](_0x54b396);})[_0x9c1a('0x23')](function(_0x7b1fc8){_0x230b93['rows']=_0x7b1fc8;return _0x230b93;})[_0x9c1a('0x23')](respondWithFilteredResult(_0x596a0f,_0x54b396))[_0x9c1a('0x43')](handleError(_0x596a0f,null));};exports[_0x9c1a('0x44')]=function(_0x4e24a9,_0xcee819){var _0x58ee9b={'raw':!![],'where':{'id':_0x4e24a9[_0x9c1a('0x45')]['id']}},_0x26dc43={};_0x26dc43[_0x9c1a('0x30')]=_['keys'](db[_0x9c1a('0x2c')][_0x9c1a('0x46')]);_0x26dc43['query']=_[_0x9c1a('0x32')](_0x4e24a9[_0x9c1a('0x31')]);_0x26dc43[_0x9c1a('0x3c')]=_['intersection'](_0x26dc43[_0x9c1a('0x30')],_0x26dc43[_0x9c1a('0x31')]);_0x58ee9b[_0x9c1a('0x34')]=_['intersection'](_0x26dc43[_0x9c1a('0x30')],qs[_0x9c1a('0x35')](_0x4e24a9[_0x9c1a('0x31')][_0x9c1a('0x35')]));_0x58ee9b[_0x9c1a('0x34')]=_0x58ee9b['attributes'][_0x9c1a('0x47')]?_0x58ee9b[_0x9c1a('0x34')]:_0x26dc43[_0x9c1a('0x30')];if(_0x4e24a9[_0x9c1a('0x31')][_0x9c1a('0x48')]){_0x58ee9b['include']=[{'all':!![]}];}_0x58ee9b=_['merge']({},_0x58ee9b,_0x4e24a9['options']);return db[_0x9c1a('0x2c')][_0x9c1a('0x49')](_0x58ee9b)['then'](handleEntityNotFound(_0xcee819,null))[_0x9c1a('0x23')](respondWithResult(_0xcee819,null))[_0x9c1a('0x43')](handleError(_0xcee819,null));};exports[_0x9c1a('0x4a')]=function(_0x570bee,_0x25756a){return db[_0x9c1a('0x2c')][_0x9c1a('0x4a')](_0x570bee[_0x9c1a('0x4b')],{})[_0x9c1a('0x23')](function(_0xda96a9){var _0x4f84bb=_0x570bee[_0x9c1a('0x4c')][_0x9c1a('0x25')]({'plain':!![]});if(!_0x4f84bb)throw new Error(_0x9c1a('0x4d'));if(_0x4f84bb[_0x9c1a('0x4e')]===_0x9c1a('0x4c')){var _0x1c61cf=_0xda96a9['get']({'plain':!![]});var _0x44fc69='Intervals';return db[_0x9c1a('0x4f')][_0x9c1a('0x49')]({'where':{'name':_0x44fc69,'userProfileId':_0x4f84bb[_0x9c1a('0x50')]},'raw':!![]})[_0x9c1a('0x23')](function(_0x186c1f){if(_0x186c1f&&_0x186c1f[_0x9c1a('0x51')]===0x0){return db[_0x9c1a('0x52')][_0x9c1a('0x4a')]({'name':_0x1c61cf[_0x9c1a('0x28')],'resourceId':_0x1c61cf['id'],'type':_0x186c1f[_0x9c1a('0x28')],'sectionId':_0x186c1f['id']},{})[_0x9c1a('0x23')](function(){return _0xda96a9;});}else{return _0xda96a9;}})[_0x9c1a('0x43')](function(_0x15eae6){logger[_0x9c1a('0x27')](_0x9c1a('0x53'),_0x15eae6);throw _0x15eae6;});}return _0xda96a9;})['then'](respondWithResult(_0x25756a,0xc9))[_0x9c1a('0x43')](handleError(_0x25756a,null));};exports['update']=function(_0x3bf9e5,_0x61f05){if(_0x3bf9e5['body']['id']){delete _0x3bf9e5[_0x9c1a('0x4b')]['id'];}return db[_0x9c1a('0x2c')]['find']({'where':{'id':_0x3bf9e5[_0x9c1a('0x45')]['id']}})[_0x9c1a('0x23')](handleEntityNotFound(_0x61f05,null))[_0x9c1a('0x23')](saveUpdates(_0x3bf9e5[_0x9c1a('0x4b')],null))[_0x9c1a('0x23')](respondWithResult(_0x61f05,null))[_0x9c1a('0x43')](handleError(_0x61f05,null));};exports[_0x9c1a('0x24')]=function(_0x25378f,_0x3fdaca){return db['Interval'][_0x9c1a('0x49')]({'where':{'id':_0x25378f[_0x9c1a('0x45')]['id']}})[_0x9c1a('0x23')](handleEntityNotFound(_0x3fdaca,null))[_0x9c1a('0x23')](removeEntity(_0x3fdaca,null))[_0x9c1a('0x43')](handleError(_0x3fdaca,null));};exports[_0x9c1a('0x54')]=function(_0x2d7ecf,_0x5709a4,_0x498991){if(_0x2d7ecf[_0x9c1a('0x4b')]['id']){delete _0x2d7ecf[_0x9c1a('0x4b')]['id'];}return db[_0x9c1a('0x2c')][_0x9c1a('0x49')]({'where':{'id':_0x2d7ecf[_0x9c1a('0x45')]['id']}})[_0x9c1a('0x23')](handleEntityNotFound(_0x5709a4,null))[_0x9c1a('0x23')](function(_0x3c24d7){if(_0x3c24d7){_0x2d7ecf[_0x9c1a('0x4b')][_0x9c1a('0x55')]=_0x3c24d7['id'];return db[_0x9c1a('0x2c')][_0x9c1a('0x4a')](_0x2d7ecf['body']);}})['then'](respondWithResult(_0x5709a4,null))[_0x9c1a('0x43')](handleError(_0x5709a4,null));};exports['getIntervals']=function(_0x4cda64,_0x18c27a,_0x113ca2){var _0x3db7d5={};var _0x5c9728={};var _0x56aa30;var _0xa22576;return db[_0x9c1a('0x2c')][_0x9c1a('0x56')]({'where':{'id':_0x4cda64[_0x9c1a('0x45')]['id']}})[_0x9c1a('0x23')](handleEntityNotFound(_0x18c27a,null))[_0x9c1a('0x23')](function(_0x195a0d){if(_0x195a0d){_0x56aa30=_0x195a0d;_0x5c9728[_0x9c1a('0x30')]=_[_0x9c1a('0x32')](db['Interval'][_0x9c1a('0x46')]);_0x5c9728[_0x9c1a('0x31')]=_['keys'](_0x4cda64[_0x9c1a('0x31')]);_0x5c9728[_0x9c1a('0x3c')]=_[_0x9c1a('0x33')](_0x5c9728[_0x9c1a('0x30')],_0x5c9728[_0x9c1a('0x31')]);_0x3db7d5[_0x9c1a('0x34')]=_[_0x9c1a('0x33')](_0x5c9728[_0x9c1a('0x30')],qs[_0x9c1a('0x35')](_0x4cda64[_0x9c1a('0x31')][_0x9c1a('0x35')]));_0x3db7d5[_0x9c1a('0x34')]=_0x3db7d5[_0x9c1a('0x34')][_0x9c1a('0x47')]?_0x3db7d5[_0x9c1a('0x34')]:_0x5c9728[_0x9c1a('0x30')];_0x3db7d5[_0x9c1a('0x39')]=qs['sort'](_0x4cda64[_0x9c1a('0x31')][_0x9c1a('0x3a')]);_0x3db7d5[_0x9c1a('0x3b')]=qs[_0x9c1a('0x3c')](_[_0x9c1a('0x3d')](_0x4cda64[_0x9c1a('0x31')],_0x5c9728[_0x9c1a('0x3c')]));if(_0x4cda64[_0x9c1a('0x31')][_0x9c1a('0x3e')]){_0x3db7d5['where']=_['merge'](_0x3db7d5['where'],{'$or':_[_0x9c1a('0x2b')](_0x3db7d5[_0x9c1a('0x34')],function(_0x303c59){var _0x3f8cfe={};_0x3f8cfe[_0x303c59]={'$like':'%'+_0x4cda64['query'][_0x9c1a('0x3e')]+'%'};return _0x3f8cfe;})});}_0x3db7d5=_[_0x9c1a('0x3f')]({},_0x3db7d5,_0x4cda64[_0x9c1a('0x40')]);return _0x56aa30[_0x9c1a('0x57')](_0x3db7d5);}})[_0x9c1a('0x23')](function(_0x98e1dd){if(_0x98e1dd){_0xa22576=_0x98e1dd[_0x9c1a('0x47')];if(!_0x4cda64[_0x9c1a('0x31')]['hasOwnProperty'](_0x9c1a('0x37'))){_0x3db7d5[_0x9c1a('0x38')]=qs[_0x9c1a('0x38')](_0x4cda64[_0x9c1a('0x31')][_0x9c1a('0x38')]);_0x3db7d5[_0x9c1a('0x1c')]=qs[_0x9c1a('0x1c')](_0x4cda64[_0x9c1a('0x31')][_0x9c1a('0x1c')]);}return _0x56aa30['getIntervals'](_0x3db7d5);}})[_0x9c1a('0x23')](function(_0x44f82c){if(_0x44f82c){return _0x44f82c?{'count':_0xa22576,'rows':_0x44f82c}:null;}})['then'](respondWithResult(_0x18c27a,null))[_0x9c1a('0x43')](handleError(_0x18c27a,null));};exports[_0x9c1a('0x58')]=function(_0x3beaac,_0x498bbc,_0x36f1cd){return db[_0x9c1a('0x2c')][_0x9c1a('0x56')]({'where':{'id':_0x3beaac[_0x9c1a('0x45')]['id']}})[_0x9c1a('0x23')](handleEntityNotFound(_0x498bbc,null))['then'](function(_0x2d1256){if(_0x2d1256){return db[_0x9c1a('0x59')][_0x9c1a('0x5a')](function(_0x37b3cf){return db[_0x9c1a('0x2c')]['destroy']({'where':{'IntervalId':_0x3beaac[_0x9c1a('0x45')]['id']},'transaction':_0x37b3cf})[_0x9c1a('0x23')](function(_0x440275){var _0x2f58ff=_[_0x9c1a('0x2b')](_0x3beaac[_0x9c1a('0x4b')],function(_0x733c19){delete _0x733c19['id'];_0x733c19['IntervalId']=_0x3beaac[_0x9c1a('0x45')]['id'];return _0x733c19;});return db[_0x9c1a('0x2c')][_0x9c1a('0x5b')](_0x2f58ff,{'transaction':_0x37b3cf});});})[_0x9c1a('0x23')](function(){return db[_0x9c1a('0x2c')][_0x9c1a('0x5c')]({'where':{'IntervalId':_0x3beaac[_0x9c1a('0x45')]['id']}});});}})[_0x9c1a('0x23')](respondWithResult(_0x498bbc,null))['catch'](handleError(_0x498bbc,null));};