Built motion from commit (unavailable).|2.5.21
[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 _0x79a0=['bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','json','count','offset','limit','set','apply','reject','save','update','destroy','then','Intervals','UserProfileResource','error','stack','name','index','map','Interval','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','find','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','create','body','params','addInterval','IntervalId','getIntervals','findOne','length','hasOwnProperty','sequelize','transaction','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment'];(function(_0x198add,_0x239d3c){var _0x35bfaa=function(_0x30eed2){while(--_0x30eed2){_0x198add['push'](_0x198add['shift']());}};_0x35bfaa(++_0x239d3c);}(_0x79a0,0x1c1));var _0x079a=function(_0x33eb05,_0x28d7e5){_0x33eb05=_0x33eb05-0x0;var _0x1112d1=_0x79a0[_0x33eb05];return _0x1112d1;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x079a('0x0'));var rimraf=require(_0x079a('0x1'));var zipdir=require(_0x079a('0x2'));var jsonpatch=require(_0x079a('0x3'));var rp=require(_0x079a('0x4'));var moment=require(_0x079a('0x5'));var BPromise=require(_0x079a('0x6'));var Mustache=require(_0x079a('0x7'));var util=require(_0x079a('0x8'));var path=require(_0x079a('0x9'));var sox=require(_0x079a('0xa'));var csv=require(_0x079a('0xb'));var ejs=require(_0x079a('0xc'));var fs=require('fs');var _=require(_0x079a('0xd'));var squel=require(_0x079a('0xe'));var crypto=require('crypto');var jsforce=require(_0x079a('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x079a('0x10'));var Papa=require(_0x079a('0x11'));var Redis=require(_0x079a('0x12'));var authService=require(_0x079a('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x079a('0x14'));var logger=require(_0x079a('0x15'))('api');var utils=require(_0x079a('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x079a('0x17'));var db=require(_0x079a('0x18'))['db'];var extensions=require(_0x079a('0x19'));function respondWithStatusCode(_0x1628a0,_0x4d90d4){_0x4d90d4=_0x4d90d4||0xcc;return function(_0x2b920e){if(_0x2b920e){return _0x1628a0[_0x079a('0x1a')](_0x4d90d4);}return _0x1628a0[_0x079a('0x1b')](_0x4d90d4)[_0x079a('0x1c')]();};}function respondWithResult(_0x302f6c,_0x5643a0){_0x5643a0=_0x5643a0||0xc8;return function(_0x511202){if(_0x511202){return _0x302f6c[_0x079a('0x1b')](_0x5643a0)[_0x079a('0x1d')](_0x511202);}};}function respondWithFilteredResult(_0x55fd03,_0x3ff8df){return function(_0x57a0c9){if(_0x57a0c9){var _0x43c0bd=_0x57a0c9[_0x079a('0x1e')],_0x2fc255=_0x3ff8df['offset'],_0x4a59de=_0x3ff8df[_0x079a('0x1f')]+_0x3ff8df[_0x079a('0x20')],_0x111da6;if(_0x4a59de>=_0x43c0bd){_0x4a59de=_0x43c0bd;_0x111da6=0xc8;}else{_0x111da6=0xce;}_0x55fd03['status'](_0x111da6);return _0x55fd03[_0x079a('0x21')]('Content-Range',_0x2fc255+'-'+_0x4a59de+'/'+_0x43c0bd)[_0x079a('0x1d')](_0x57a0c9);}return null;};}function patchUpdates(_0x3c6fae){return function(_0x262070){try{jsonpatch[_0x079a('0x22')](_0x262070,_0x3c6fae,!![]);}catch(_0x3079c2){return BPromise[_0x079a('0x23')](_0x3079c2);}return _0x262070[_0x079a('0x24')]();};}function saveUpdates(_0x29fbf0,_0xd4fc1a){return function(_0x2ee82f){if(_0x2ee82f){return _0x2ee82f[_0x079a('0x25')](_0x29fbf0)['then'](function(_0x4273a4){return _0x4273a4;});}return null;};}function removeEntity(_0x2daab7,_0x3e124e){return function(_0x32255d){if(_0x32255d){return _0x32255d[_0x079a('0x26')]()[_0x079a('0x27')](function(){var _0x45ec72=_0x32255d['get']({'plain':!![]});var _0x389d4d=_0x079a('0x28');return db[_0x079a('0x29')]['destroy']({'where':{'type':_0x389d4d,'resourceId':_0x45ec72['id']}})['then'](function(){return _0x32255d;});})['then'](function(){_0x2daab7[_0x079a('0x1b')](0xcc)[_0x079a('0x1c')]();});}};}function handleEntityNotFound(_0x273264,_0x24b85e){return function(_0x4e162f){if(!_0x4e162f){_0x273264[_0x079a('0x1a')](0x194);}return _0x4e162f;};}function handleError(_0x5db3d5,_0x37980d){_0x37980d=_0x37980d||0x1f4;return function(_0x51f115){logger[_0x079a('0x2a')](_0x51f115[_0x079a('0x2b')]);if(_0x51f115[_0x079a('0x2c')]){delete _0x51f115[_0x079a('0x2c')];}_0x5db3d5[_0x079a('0x1b')](_0x37980d)['send'](_0x51f115);};}exports[_0x079a('0x2d')]=function(_0x71ea6c,_0x3f59fb){var _0x5eb88b={},_0xda72c4={},_0x3e79cc={'count':0x0,'rows':[]};var _0x304d73=_[_0x079a('0x2e')](db[_0x079a('0x2f')][_0x079a('0x30')],function(_0x466c61){return{'name':_0x466c61[_0x079a('0x31')],'type':_0x466c61[_0x079a('0x32')]['key']};});_0xda72c4[_0x079a('0x33')]=_[_0x079a('0x2e')](_0x304d73,'name');_0xda72c4[_0x079a('0x34')]=_[_0x079a('0x35')](_0x71ea6c['query']);_0xda72c4['filters']=_[_0x079a('0x36')](_0xda72c4[_0x079a('0x33')],_0xda72c4['query']);_0x5eb88b[_0x079a('0x37')]=_[_0x079a('0x36')](_0xda72c4[_0x079a('0x33')],qs[_0x079a('0x38')](_0x71ea6c['query'][_0x079a('0x38')]));_0x5eb88b[_0x079a('0x37')]=_0x5eb88b[_0x079a('0x37')]['length']?_0x5eb88b[_0x079a('0x37')]:_0xda72c4[_0x079a('0x33')];if(!_0x71ea6c[_0x079a('0x34')]['hasOwnProperty'](_0x079a('0x39'))){_0x5eb88b['limit']=qs['limit'](_0x71ea6c[_0x079a('0x34')][_0x079a('0x20')]);_0x5eb88b[_0x079a('0x1f')]=qs[_0x079a('0x1f')](_0x71ea6c['query'][_0x079a('0x1f')]);}_0x5eb88b[_0x079a('0x3a')]=qs[_0x079a('0x3b')](_0x71ea6c[_0x079a('0x34')]['sort']);_0x5eb88b[_0x079a('0x3c')]=qs[_0x079a('0x3d')](_[_0x079a('0x3e')](_0x71ea6c[_0x079a('0x34')],_0xda72c4[_0x079a('0x3d')]),_0x304d73);if(_0x71ea6c[_0x079a('0x34')][_0x079a('0x3f')]){_0x5eb88b[_0x079a('0x3c')]=_[_0x079a('0x40')](_0x5eb88b[_0x079a('0x3c')],{'$or':_[_0x079a('0x2e')](_0x304d73,function(_0x459d6c){if(_0x459d6c[_0x079a('0x32')]!==_0x079a('0x41')){var _0xbb7a97={};_0xbb7a97[_0x459d6c[_0x079a('0x2c')]]={'$like':'%'+_0x71ea6c[_0x079a('0x34')][_0x079a('0x3f')]+'%'};return _0xbb7a97;}})});}_0x5eb88b=_[_0x079a('0x40')]({},_0x5eb88b,_0x71ea6c[_0x079a('0x42')]);var _0x3f1c5b={'where':_0x5eb88b[_0x079a('0x3c')]};return db[_0x079a('0x2f')][_0x079a('0x1e')](_0x3f1c5b)['then'](function(_0x2b135d){_0x3e79cc['count']=_0x2b135d;if(_0x71ea6c['query'][_0x079a('0x43')]){_0x5eb88b[_0x079a('0x44')]=[{'all':!![]}];}return db[_0x079a('0x2f')][_0x079a('0x45')](_0x5eb88b);})[_0x079a('0x27')](function(_0x4f6f30){_0x3e79cc[_0x079a('0x46')]=_0x4f6f30;return _0x3e79cc;})[_0x079a('0x27')](respondWithFilteredResult(_0x3f59fb,_0x5eb88b))[_0x079a('0x47')](handleError(_0x3f59fb,null));};exports[_0x079a('0x48')]=function(_0x32b6c8,_0x5cd267){var _0x1f0343={'raw':!![],'where':{'id':_0x32b6c8['params']['id']}},_0x4214dc={};_0x4214dc[_0x079a('0x33')]=_[_0x079a('0x35')](db[_0x079a('0x2f')][_0x079a('0x30')]);_0x4214dc[_0x079a('0x34')]=_[_0x079a('0x35')](_0x32b6c8[_0x079a('0x34')]);_0x4214dc['filters']=_['intersection'](_0x4214dc[_0x079a('0x33')],_0x4214dc['query']);_0x1f0343[_0x079a('0x37')]=_['intersection'](_0x4214dc['model'],qs['fields'](_0x32b6c8[_0x079a('0x34')][_0x079a('0x38')]));_0x1f0343['attributes']=_0x1f0343['attributes']['length']?_0x1f0343[_0x079a('0x37')]:_0x4214dc[_0x079a('0x33')];if(_0x32b6c8[_0x079a('0x34')]['includeAll']){_0x1f0343[_0x079a('0x44')]=[{'all':!![]}];}_0x1f0343=_[_0x079a('0x40')]({},_0x1f0343,_0x32b6c8['options']);return db[_0x079a('0x2f')][_0x079a('0x49')](_0x1f0343)[_0x079a('0x27')](handleEntityNotFound(_0x5cd267,null))[_0x079a('0x27')](respondWithResult(_0x5cd267,null))[_0x079a('0x47')](handleError(_0x5cd267,null));};exports['create']=function(_0x24a45f,_0x2f0915){return db['Interval']['create'](_0x24a45f['body'],{})[_0x079a('0x27')](function(_0x347679){var _0x414f1e=_0x24a45f[_0x079a('0x4a')][_0x079a('0x4b')]({'plain':!![]});if(!_0x414f1e)throw new Error(_0x079a('0x4c'));if(_0x414f1e['role']===_0x079a('0x4a')){var _0x13ecb3=_0x347679['get']({'plain':!![]});var _0x7fff1d=_0x079a('0x28');return db[_0x079a('0x4d')]['find']({'where':{'name':_0x7fff1d,'userProfileId':_0x414f1e[_0x079a('0x4e')]},'raw':!![]})[_0x079a('0x27')](function(_0x3a5495){if(_0x3a5495&&_0x3a5495[_0x079a('0x4f')]===0x0){return db[_0x079a('0x29')][_0x079a('0x50')]({'name':_0x13ecb3[_0x079a('0x2c')],'resourceId':_0x13ecb3['id'],'type':_0x3a5495[_0x079a('0x2c')],'sectionId':_0x3a5495['id']},{})[_0x079a('0x27')](function(){return _0x347679;});}else{return _0x347679;}})['catch'](function(_0x4fe55f){logger[_0x079a('0x2a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4fe55f);throw _0x4fe55f;});}return _0x347679;})[_0x079a('0x27')](respondWithResult(_0x2f0915,0xc9))[_0x079a('0x47')](handleError(_0x2f0915,null));};exports[_0x079a('0x25')]=function(_0x42590f,_0x53c1ef){if(_0x42590f[_0x079a('0x51')]['id']){delete _0x42590f[_0x079a('0x51')]['id'];}return db[_0x079a('0x2f')][_0x079a('0x49')]({'where':{'id':_0x42590f[_0x079a('0x52')]['id']}})[_0x079a('0x27')](handleEntityNotFound(_0x53c1ef,null))[_0x079a('0x27')](saveUpdates(_0x42590f[_0x079a('0x51')],null))['then'](respondWithResult(_0x53c1ef,null))[_0x079a('0x47')](handleError(_0x53c1ef,null));};exports['destroy']=function(_0xc2f403,_0x391d38){return db[_0x079a('0x2f')]['find']({'where':{'id':_0xc2f403[_0x079a('0x52')]['id']}})[_0x079a('0x27')](handleEntityNotFound(_0x391d38,null))[_0x079a('0x27')](removeEntity(_0x391d38,null))[_0x079a('0x47')](handleError(_0x391d38,null));};exports[_0x079a('0x53')]=function(_0x43d79a,_0x49787c,_0x50dd05){if(_0x43d79a[_0x079a('0x51')]['id']){delete _0x43d79a[_0x079a('0x51')]['id'];}return db[_0x079a('0x2f')][_0x079a('0x49')]({'where':{'id':_0x43d79a[_0x079a('0x52')]['id']}})['then'](handleEntityNotFound(_0x49787c,null))[_0x079a('0x27')](function(_0x385a87){if(_0x385a87){_0x43d79a[_0x079a('0x51')][_0x079a('0x54')]=_0x385a87['id'];return db['Interval']['create'](_0x43d79a[_0x079a('0x51')]);}})[_0x079a('0x27')](respondWithResult(_0x49787c,null))['catch'](handleError(_0x49787c,null));};exports[_0x079a('0x55')]=function(_0x242ec5,_0x3b165e,_0x44d24a){var _0x542246={};var _0x2bbce5={};var _0x4f3de8;var _0x31bf97;return db[_0x079a('0x2f')][_0x079a('0x56')]({'where':{'id':_0x242ec5[_0x079a('0x52')]['id']}})['then'](handleEntityNotFound(_0x3b165e,null))['then'](function(_0x4ddb5b){if(_0x4ddb5b){_0x4f3de8=_0x4ddb5b;_0x2bbce5[_0x079a('0x33')]=_[_0x079a('0x35')](db[_0x079a('0x2f')][_0x079a('0x30')]);_0x2bbce5[_0x079a('0x34')]=_[_0x079a('0x35')](_0x242ec5[_0x079a('0x34')]);_0x2bbce5['filters']=_['intersection'](_0x2bbce5[_0x079a('0x33')],_0x2bbce5['query']);_0x542246[_0x079a('0x37')]=_['intersection'](_0x2bbce5[_0x079a('0x33')],qs[_0x079a('0x38')](_0x242ec5['query'][_0x079a('0x38')]));_0x542246[_0x079a('0x37')]=_0x542246['attributes'][_0x079a('0x57')]?_0x542246[_0x079a('0x37')]:_0x2bbce5['model'];_0x542246[_0x079a('0x3a')]=qs[_0x079a('0x3b')](_0x242ec5['query'][_0x079a('0x3b')]);_0x542246['where']=qs['filters'](_[_0x079a('0x3e')](_0x242ec5[_0x079a('0x34')],_0x2bbce5['filters']));if(_0x242ec5[_0x079a('0x34')][_0x079a('0x3f')]){_0x542246[_0x079a('0x3c')]=_[_0x079a('0x40')](_0x542246[_0x079a('0x3c')],{'$or':_[_0x079a('0x2e')](_0x542246[_0x079a('0x37')],function(_0x1a54a1){var _0xf68851={};_0xf68851[_0x1a54a1]={'$like':'%'+_0x242ec5[_0x079a('0x34')]['filter']+'%'};return _0xf68851;})});}_0x542246=_[_0x079a('0x40')]({},_0x542246,_0x242ec5[_0x079a('0x42')]);return _0x4f3de8[_0x079a('0x55')](_0x542246);}})[_0x079a('0x27')](function(_0x54acfd){if(_0x54acfd){_0x31bf97=_0x54acfd[_0x079a('0x57')];if(!_0x242ec5['query'][_0x079a('0x58')](_0x079a('0x39'))){_0x542246[_0x079a('0x20')]=qs[_0x079a('0x20')](_0x242ec5[_0x079a('0x34')]['limit']);_0x542246[_0x079a('0x1f')]=qs[_0x079a('0x1f')](_0x242ec5['query']['offset']);}return _0x4f3de8[_0x079a('0x55')](_0x542246);}})[_0x079a('0x27')](function(_0x2c4041){if(_0x2c4041){return _0x2c4041?{'count':_0x31bf97,'rows':_0x2c4041}:null;}})['then'](respondWithResult(_0x3b165e,null))[_0x079a('0x47')](handleError(_0x3b165e,null));};exports['addIntervals']=function(_0x20a5ff,_0x3f9339,_0x5cf10a){return db[_0x079a('0x2f')][_0x079a('0x56')]({'where':{'id':_0x20a5ff[_0x079a('0x52')]['id']}})[_0x079a('0x27')](handleEntityNotFound(_0x3f9339,null))[_0x079a('0x27')](function(_0x2cf16b){if(_0x2cf16b){return db[_0x079a('0x59')][_0x079a('0x5a')](function(_0xc0ce0e){return db[_0x079a('0x2f')]['destroy']({'where':{'IntervalId':_0x20a5ff['params']['id']},'transaction':_0xc0ce0e})['then'](function(_0x56fab5){var _0x4e1eec=_[_0x079a('0x2e')](_0x20a5ff[_0x079a('0x51')],function(_0x1ede4f){delete _0x1ede4f['id'];_0x1ede4f['IntervalId']=_0x20a5ff[_0x079a('0x52')]['id'];return _0x1ede4f;});return db[_0x079a('0x2f')]['bulkCreate'](_0x4e1eec,{'transaction':_0xc0ce0e});});})['then'](function(){return db[_0x079a('0x2f')][_0x079a('0x45')]({'where':{'IntervalId':_0x20a5ff[_0x079a('0x52')]['id']}});});}})[_0x079a('0x27')](respondWithResult(_0x3f9339,null))[_0x079a('0x47')](handleError(_0x3f9339,null));};