Built motion from commit 4d4d9a88.|2.6.26
[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 _0xb68e=['create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','error','addInterval','IntervalId','getIntervals','findOne','length','sort','nolimit','addIntervals','sequelize','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','status','end','json','undefined','count','offset','set','Content-Range','reject','save','update','then','destroy','get','Intervals','UserProfileResource','stack','name','send','index','map','Interval','rawAttributes','fieldName','query','keys','filters','intersection','attributes','fields','model','hasOwnProperty','limit','order','where','pick','type','VIRTUAL','filter','merge','options','findAll','rows','catch','params','include','find'];(function(_0x4b9a3c,_0x40898a){var _0x4c16e9=function(_0x20d018){while(--_0x20d018){_0x4b9a3c['push'](_0x4b9a3c['shift']());}};_0x4c16e9(++_0x40898a);}(_0xb68e,0x122));var _0xeb68=function(_0x169845,_0x33d35b){_0x169845=_0x169845-0x0;var _0x45fc96=_0xb68e[_0x169845];return _0x45fc96;};'use strict';var emlformat=require(_0xeb68('0x0'));var rimraf=require(_0xeb68('0x1'));var zipdir=require(_0xeb68('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xeb68('0x3'));var moment=require('moment');var BPromise=require(_0xeb68('0x4'));var Mustache=require(_0xeb68('0x5'));var util=require(_0xeb68('0x6'));var path=require(_0xeb68('0x7'));var sox=require(_0xeb68('0x8'));var csv=require('to-csv');var ejs=require(_0xeb68('0x9'));var fs=require('fs');var fs_extra=require(_0xeb68('0xa'));var _=require(_0xeb68('0xb'));var squel=require(_0xeb68('0xc'));var crypto=require(_0xeb68('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xeb68('0xe'));var toCsv=require('to-csv');var querystring=require(_0xeb68('0xf'));var Papa=require(_0xeb68('0x10'));var Redis=require(_0xeb68('0x11'));var authService=require(_0xeb68('0x12'));var qs=require(_0xeb68('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xeb68('0x14'));var logger=require('../../config/logger')(_0xeb68('0x15'));var utils=require(_0xeb68('0x16'));var config=require(_0xeb68('0x17'));var licenseUtil=require(_0xeb68('0x18'));var db=require(_0xeb68('0x19'))['db'];var extensions=require(_0xeb68('0x1a'));function respondWithStatusCode(_0x4a4746,_0x301001){_0x301001=_0x301001||0xcc;return function(_0x228769){if(_0x228769){return _0x4a4746['sendStatus'](_0x301001);}return _0x4a4746[_0xeb68('0x1b')](_0x301001)[_0xeb68('0x1c')]();};}function respondWithResult(_0x4d3a2a,_0x3ed07a){_0x3ed07a=_0x3ed07a||0xc8;return function(_0x5f0799){if(_0x5f0799){return _0x4d3a2a['status'](_0x3ed07a)[_0xeb68('0x1d')](_0x5f0799);}};}function respondWithFilteredResult(_0xe3967a,_0x37da52){return function(_0x23e9e5){if(_0x23e9e5){var _0x5a6236=typeof _0x37da52['offset']==='undefined'&&typeof _0x37da52['limit']===_0xeb68('0x1e');var _0x397f7c=_0x23e9e5[_0xeb68('0x1f')];var _0x3c9b4d=_0x5a6236?0x0:_0x37da52['offset'];var _0x40300a=_0x5a6236?_0x23e9e5['count']:_0x37da52[_0xeb68('0x20')]+_0x37da52['limit'];var _0x2e28e3;if(_0x40300a>=_0x397f7c){_0x40300a=_0x397f7c;_0x2e28e3=0xc8;}else{_0x2e28e3=0xce;}_0xe3967a[_0xeb68('0x1b')](_0x2e28e3);return _0xe3967a[_0xeb68('0x21')](_0xeb68('0x22'),_0x3c9b4d+'-'+_0x40300a+'/'+_0x397f7c)[_0xeb68('0x1d')](_0x23e9e5);}return null;};}function patchUpdates(_0x111451){return function(_0x35986b){try{jsonpatch['apply'](_0x35986b,_0x111451,!![]);}catch(_0x152278){return BPromise[_0xeb68('0x23')](_0x152278);}return _0x35986b[_0xeb68('0x24')]();};}function saveUpdates(_0x2ac6ce,_0x2321fc){return function(_0x2531a5){if(_0x2531a5){return _0x2531a5[_0xeb68('0x25')](_0x2ac6ce)[_0xeb68('0x26')](function(_0xaa580c){return _0xaa580c;});}return null;};}function removeEntity(_0x5b4545,_0x178817){return function(_0x1c6df0){if(_0x1c6df0){return _0x1c6df0[_0xeb68('0x27')]()[_0xeb68('0x26')](function(){var _0x4df0e0=_0x1c6df0[_0xeb68('0x28')]({'plain':!![]});var _0x31c2bb=_0xeb68('0x29');return db[_0xeb68('0x2a')][_0xeb68('0x27')]({'where':{'type':_0x31c2bb,'resourceId':_0x4df0e0['id']}})[_0xeb68('0x26')](function(){return _0x1c6df0;});})[_0xeb68('0x26')](function(){_0x5b4545[_0xeb68('0x1b')](0xcc)[_0xeb68('0x1c')]();});}};}function handleEntityNotFound(_0x8be6c5,_0x4cac0a){return function(_0x502e76){if(!_0x502e76){_0x8be6c5['sendStatus'](0x194);}return _0x502e76;};}function handleError(_0x5d2053,_0x25940b){_0x25940b=_0x25940b||0x1f4;return function(_0x414a51){logger['error'](_0x414a51[_0xeb68('0x2b')]);if(_0x414a51[_0xeb68('0x2c')]){delete _0x414a51[_0xeb68('0x2c')];}_0x5d2053[_0xeb68('0x1b')](_0x25940b)[_0xeb68('0x2d')](_0x414a51);};}exports[_0xeb68('0x2e')]=function(_0x3b5e62,_0x213df2){var _0x61e549={},_0x6f045e={},_0x4b145e={'count':0x0,'rows':[]};var _0x22a33f=_[_0xeb68('0x2f')](db[_0xeb68('0x30')][_0xeb68('0x31')],function(_0x307659){return{'name':_0x307659[_0xeb68('0x32')],'type':_0x307659['type']['key']};});_0x6f045e['model']=_[_0xeb68('0x2f')](_0x22a33f,_0xeb68('0x2c'));_0x6f045e[_0xeb68('0x33')]=_[_0xeb68('0x34')](_0x3b5e62['query']);_0x6f045e[_0xeb68('0x35')]=_[_0xeb68('0x36')](_0x6f045e['model'],_0x6f045e['query']);_0x61e549[_0xeb68('0x37')]=_['intersection'](_0x6f045e['model'],qs['fields'](_0x3b5e62[_0xeb68('0x33')][_0xeb68('0x38')]));_0x61e549[_0xeb68('0x37')]=_0x61e549[_0xeb68('0x37')]['length']?_0x61e549[_0xeb68('0x37')]:_0x6f045e[_0xeb68('0x39')];if(!_0x3b5e62[_0xeb68('0x33')][_0xeb68('0x3a')]('nolimit')){_0x61e549[_0xeb68('0x3b')]=qs[_0xeb68('0x3b')](_0x3b5e62[_0xeb68('0x33')][_0xeb68('0x3b')]);_0x61e549[_0xeb68('0x20')]=qs[_0xeb68('0x20')](_0x3b5e62[_0xeb68('0x33')][_0xeb68('0x20')]);}_0x61e549[_0xeb68('0x3c')]=qs['sort'](_0x3b5e62['query']['sort']);_0x61e549[_0xeb68('0x3d')]=qs[_0xeb68('0x35')](_[_0xeb68('0x3e')](_0x3b5e62[_0xeb68('0x33')],_0x6f045e[_0xeb68('0x35')]),_0x22a33f);if(_0x3b5e62[_0xeb68('0x33')]['filter']){_0x61e549[_0xeb68('0x3d')]=_['merge'](_0x61e549[_0xeb68('0x3d')],{'$or':_[_0xeb68('0x2f')](_0x22a33f,function(_0x4be157){if(_0x4be157[_0xeb68('0x3f')]!==_0xeb68('0x40')){var _0x46eca6={};_0x46eca6[_0x4be157[_0xeb68('0x2c')]]={'$like':'%'+_0x3b5e62[_0xeb68('0x33')][_0xeb68('0x41')]+'%'};return _0x46eca6;}})});}_0x61e549=_[_0xeb68('0x42')]({},_0x61e549,_0x3b5e62[_0xeb68('0x43')]);var _0x1bdd14={'where':_0x61e549[_0xeb68('0x3d')]};return db[_0xeb68('0x30')][_0xeb68('0x1f')](_0x1bdd14)['then'](function(_0x53c172){_0x4b145e[_0xeb68('0x1f')]=_0x53c172;if(_0x3b5e62[_0xeb68('0x33')]['includeAll']){_0x61e549['include']=[{'all':!![]}];}return db[_0xeb68('0x30')][_0xeb68('0x44')](_0x61e549);})[_0xeb68('0x26')](function(_0x2dcd4c){_0x4b145e[_0xeb68('0x45')]=_0x2dcd4c;return _0x4b145e;})['then'](respondWithFilteredResult(_0x213df2,_0x61e549))[_0xeb68('0x46')](handleError(_0x213df2,null));};exports['show']=function(_0x4cabcc,_0x28c629){var _0x269a5d={'raw':!![],'where':{'id':_0x4cabcc[_0xeb68('0x47')]['id']}},_0x1c655f={};_0x1c655f[_0xeb68('0x39')]=_['keys'](db[_0xeb68('0x30')][_0xeb68('0x31')]);_0x1c655f[_0xeb68('0x33')]=_[_0xeb68('0x34')](_0x4cabcc[_0xeb68('0x33')]);_0x1c655f[_0xeb68('0x35')]=_[_0xeb68('0x36')](_0x1c655f[_0xeb68('0x39')],_0x1c655f[_0xeb68('0x33')]);_0x269a5d[_0xeb68('0x37')]=_['intersection'](_0x1c655f[_0xeb68('0x39')],qs[_0xeb68('0x38')](_0x4cabcc[_0xeb68('0x33')][_0xeb68('0x38')]));_0x269a5d[_0xeb68('0x37')]=_0x269a5d['attributes']['length']?_0x269a5d[_0xeb68('0x37')]:_0x1c655f[_0xeb68('0x39')];if(_0x4cabcc[_0xeb68('0x33')]['includeAll']){_0x269a5d[_0xeb68('0x48')]=[{'all':!![]}];}_0x269a5d=_[_0xeb68('0x42')]({},_0x269a5d,_0x4cabcc['options']);return db[_0xeb68('0x30')][_0xeb68('0x49')](_0x269a5d)['then'](handleEntityNotFound(_0x28c629,null))[_0xeb68('0x26')](respondWithResult(_0x28c629,null))['catch'](handleError(_0x28c629,null));};exports[_0xeb68('0x4a')]=function(_0x1bee19,_0x5765e1){return db[_0xeb68('0x30')][_0xeb68('0x4a')](_0x1bee19[_0xeb68('0x4b')],{})[_0xeb68('0x26')](function(_0xee49cd){var _0x22c855=_0x1bee19[_0xeb68('0x4c')][_0xeb68('0x28')]({'plain':!![]});if(!_0x22c855)throw new Error(_0xeb68('0x4d'));if(_0x22c855[_0xeb68('0x4e')]==='user'){var _0x1f65b4=_0xee49cd['get']({'plain':!![]});var _0x6ce704=_0xeb68('0x29');return db[_0xeb68('0x4f')]['find']({'where':{'name':_0x6ce704,'userProfileId':_0x22c855[_0xeb68('0x50')]},'raw':!![]})['then'](function(_0x2611b4){if(_0x2611b4&&_0x2611b4['autoAssociation']===0x0){return db[_0xeb68('0x2a')][_0xeb68('0x4a')]({'name':_0x1f65b4[_0xeb68('0x2c')],'resourceId':_0x1f65b4['id'],'type':_0x2611b4[_0xeb68('0x2c')],'sectionId':_0x2611b4['id']},{})[_0xeb68('0x26')](function(){return _0xee49cd;});}else{return _0xee49cd;}})[_0xeb68('0x46')](function(_0x179210){logger[_0xeb68('0x51')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x179210);throw _0x179210;});}return _0xee49cd;})['then'](respondWithResult(_0x5765e1,0xc9))[_0xeb68('0x46')](handleError(_0x5765e1,null));};exports['update']=function(_0x42f6ea,_0x51caf1){if(_0x42f6ea['body']['id']){delete _0x42f6ea[_0xeb68('0x4b')]['id'];}return db['Interval'][_0xeb68('0x49')]({'where':{'id':_0x42f6ea[_0xeb68('0x47')]['id']}})['then'](handleEntityNotFound(_0x51caf1,null))[_0xeb68('0x26')](saveUpdates(_0x42f6ea[_0xeb68('0x4b')],null))[_0xeb68('0x26')](respondWithResult(_0x51caf1,null))['catch'](handleError(_0x51caf1,null));};exports[_0xeb68('0x27')]=function(_0x262def,_0x166308){return db[_0xeb68('0x30')][_0xeb68('0x49')]({'where':{'id':_0x262def[_0xeb68('0x47')]['id']}})[_0xeb68('0x26')](handleEntityNotFound(_0x166308,null))['then'](removeEntity(_0x166308,null))[_0xeb68('0x46')](handleError(_0x166308,null));};exports[_0xeb68('0x52')]=function(_0x89ba36,_0xd8e218,_0x17a2ea){if(_0x89ba36[_0xeb68('0x4b')]['id']){delete _0x89ba36[_0xeb68('0x4b')]['id'];}return db['Interval'][_0xeb68('0x49')]({'where':{'id':_0x89ba36[_0xeb68('0x47')]['id']}})[_0xeb68('0x26')](handleEntityNotFound(_0xd8e218,null))['then'](function(_0x1412d8){if(_0x1412d8){_0x89ba36[_0xeb68('0x4b')][_0xeb68('0x53')]=_0x1412d8['id'];return db[_0xeb68('0x30')][_0xeb68('0x4a')](_0x89ba36[_0xeb68('0x4b')]);}})[_0xeb68('0x26')](respondWithResult(_0xd8e218,null))[_0xeb68('0x46')](handleError(_0xd8e218,null));};exports[_0xeb68('0x54')]=function(_0x1bb0c6,_0x3106ce,_0x3813ec){var _0x380b7e={};var _0x5cf423={};var _0x556554;var _0x14f10b;return db[_0xeb68('0x30')][_0xeb68('0x55')]({'where':{'id':_0x1bb0c6[_0xeb68('0x47')]['id']}})[_0xeb68('0x26')](handleEntityNotFound(_0x3106ce,null))[_0xeb68('0x26')](function(_0x1e5480){if(_0x1e5480){_0x556554=_0x1e5480;_0x5cf423['model']=_[_0xeb68('0x34')](db[_0xeb68('0x30')][_0xeb68('0x31')]);_0x5cf423[_0xeb68('0x33')]=_['keys'](_0x1bb0c6[_0xeb68('0x33')]);_0x5cf423['filters']=_[_0xeb68('0x36')](_0x5cf423['model'],_0x5cf423['query']);_0x380b7e[_0xeb68('0x37')]=_[_0xeb68('0x36')](_0x5cf423[_0xeb68('0x39')],qs[_0xeb68('0x38')](_0x1bb0c6['query']['fields']));_0x380b7e['attributes']=_0x380b7e['attributes'][_0xeb68('0x56')]?_0x380b7e[_0xeb68('0x37')]:_0x5cf423[_0xeb68('0x39')];_0x380b7e[_0xeb68('0x3c')]=qs['sort'](_0x1bb0c6['query'][_0xeb68('0x57')]);_0x380b7e[_0xeb68('0x3d')]=qs['filters'](_['pick'](_0x1bb0c6[_0xeb68('0x33')],_0x5cf423[_0xeb68('0x35')]));if(_0x1bb0c6[_0xeb68('0x33')][_0xeb68('0x41')]){_0x380b7e[_0xeb68('0x3d')]=_[_0xeb68('0x42')](_0x380b7e[_0xeb68('0x3d')],{'$or':_['map'](_0x380b7e[_0xeb68('0x37')],function(_0x52c2b9){var _0x389524={};_0x389524[_0x52c2b9]={'$like':'%'+_0x1bb0c6[_0xeb68('0x33')][_0xeb68('0x41')]+'%'};return _0x389524;})});}_0x380b7e=_[_0xeb68('0x42')]({},_0x380b7e,_0x1bb0c6['options']);return _0x556554[_0xeb68('0x54')](_0x380b7e);}})[_0xeb68('0x26')](function(_0x5976c6){if(_0x5976c6){_0x14f10b=_0x5976c6['length'];if(!_0x1bb0c6[_0xeb68('0x33')][_0xeb68('0x3a')](_0xeb68('0x58'))){_0x380b7e[_0xeb68('0x3b')]=qs[_0xeb68('0x3b')](_0x1bb0c6['query']['limit']);_0x380b7e[_0xeb68('0x20')]=qs[_0xeb68('0x20')](_0x1bb0c6[_0xeb68('0x33')][_0xeb68('0x20')]);}return _0x556554['getIntervals'](_0x380b7e);}})['then'](function(_0x30de41){if(_0x30de41){return _0x30de41?{'count':_0x14f10b,'rows':_0x30de41}:null;}})[_0xeb68('0x26')](respondWithResult(_0x3106ce,null))[_0xeb68('0x46')](handleError(_0x3106ce,null));};exports[_0xeb68('0x59')]=function(_0x3d21c3,_0x4a4f8d,_0x3fa5e1){return db[_0xeb68('0x30')]['findOne']({'where':{'id':_0x3d21c3['params']['id']}})['then'](handleEntityNotFound(_0x4a4f8d,null))[_0xeb68('0x26')](function(_0x3b38bf){if(_0x3b38bf){return db[_0xeb68('0x5a')]['transaction'](function(_0x1b0c41){return db['Interval'][_0xeb68('0x27')]({'where':{'IntervalId':_0x3d21c3[_0xeb68('0x47')]['id']},'transaction':_0x1b0c41})['then'](function(_0x422b98){var _0x1baddf=_[_0xeb68('0x2f')](_0x3d21c3[_0xeb68('0x4b')],function(_0x2294fd){delete _0x2294fd['id'];_0x2294fd[_0xeb68('0x53')]=_0x3d21c3[_0xeb68('0x47')]['id'];return _0x2294fd;});return db[_0xeb68('0x30')]['bulkCreate'](_0x1baddf,{'transaction':_0x1b0c41});});})['then'](function(){return db[_0xeb68('0x30')][_0xeb68('0x44')]({'where':{'IntervalId':_0x3d21c3[_0xeb68('0x47')]['id']}});});}})[_0xeb68('0x26')](respondWithResult(_0x4a4f8d,null))[_0xeb68('0x46')](handleError(_0x4a4f8d,null));};