Built motion from commit d5e4af8c.|2.6.23
[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 _0x9217=['UserProfileSection','userProfileId','autoAssociation','error','body','addInterval','IntervalId','getIntervals','findOne','length','addIntervals','sequelize','transaction','bulkCreate','eml-format','zip-dir','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../components/extensions/rewrite','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','Intervals','UserProfileResource','stack','name','send','index','map','Interval','rawAttributes','fieldName','type','key','query','filters','intersection','attributes','fields','model','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','keys','find','create','user'];(function(_0xa0169e,_0x116b8b){var _0x47c04b=function(_0x2cf39a){while(--_0x2cf39a){_0xa0169e['push'](_0xa0169e['shift']());}};_0x47c04b(++_0x116b8b);}(_0x9217,0xc4));var _0x7921=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9217[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x7921('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7921('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x7921('0x2'));var BPromise=require(_0x7921('0x3'));var Mustache=require(_0x7921('0x4'));var util=require(_0x7921('0x5'));var path=require('path');var sox=require(_0x7921('0x6'));var csv=require(_0x7921('0x7'));var ejs=require(_0x7921('0x8'));var fs=require('fs');var fs_extra=require(_0x7921('0x9'));var _=require(_0x7921('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7921('0xb'));var deskjs=require(_0x7921('0xc'));var toCsv=require('to-csv');var querystring=require(_0x7921('0xd'));var Papa=require(_0x7921('0xe'));var Redis=require('ioredis');var authService=require(_0x7921('0xf'));var qs=require(_0x7921('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7921('0x11'));var logger=require(_0x7921('0x12'))(_0x7921('0x13'));var utils=require(_0x7921('0x14'));var config=require(_0x7921('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];var extensions=require(_0x7921('0x16'));function respondWithStatusCode(_0x187351,_0x3a9b10){_0x3a9b10=_0x3a9b10||0xcc;return function(_0x42e2b3){if(_0x42e2b3){return _0x187351[_0x7921('0x17')](_0x3a9b10);}return _0x187351['status'](_0x3a9b10)[_0x7921('0x18')]();};}function respondWithResult(_0x1f5a7f,_0x3e3a1f){_0x3e3a1f=_0x3e3a1f||0xc8;return function(_0x17990e){if(_0x17990e){return _0x1f5a7f[_0x7921('0x19')](_0x3e3a1f)[_0x7921('0x1a')](_0x17990e);}};}function respondWithFilteredResult(_0x17bd6c,_0x33c869){return function(_0x32d7de){if(_0x32d7de){var _0x5d8f27=typeof _0x33c869[_0x7921('0x1b')]===_0x7921('0x1c')&&typeof _0x33c869[_0x7921('0x1d')]===_0x7921('0x1c');var _0x2ee38f=_0x32d7de[_0x7921('0x1e')];var _0x371363=_0x5d8f27?0x0:_0x33c869[_0x7921('0x1b')];var _0x2d02da=_0x5d8f27?_0x32d7de[_0x7921('0x1e')]:_0x33c869[_0x7921('0x1b')]+_0x33c869[_0x7921('0x1d')];var _0x4a89bb;if(_0x2d02da>=_0x2ee38f){_0x2d02da=_0x2ee38f;_0x4a89bb=0xc8;}else{_0x4a89bb=0xce;}_0x17bd6c[_0x7921('0x19')](_0x4a89bb);return _0x17bd6c[_0x7921('0x1f')](_0x7921('0x20'),_0x371363+'-'+_0x2d02da+'/'+_0x2ee38f)[_0x7921('0x1a')](_0x32d7de);}return null;};}function patchUpdates(_0x103720){return function(_0x2f9424){try{jsonpatch['apply'](_0x2f9424,_0x103720,!![]);}catch(_0x4d292c){return BPromise[_0x7921('0x21')](_0x4d292c);}return _0x2f9424[_0x7921('0x22')]();};}function saveUpdates(_0x5735c4,_0x496332){return function(_0x593ffd){if(_0x593ffd){return _0x593ffd[_0x7921('0x23')](_0x5735c4)[_0x7921('0x24')](function(_0x28962c){return _0x28962c;});}return null;};}function removeEntity(_0x17c30d,_0x2a869c){return function(_0x498170){if(_0x498170){return _0x498170[_0x7921('0x25')]()[_0x7921('0x24')](function(){var _0x28873b=_0x498170[_0x7921('0x26')]({'plain':!![]});var _0x23ca74=_0x7921('0x27');return db[_0x7921('0x28')]['destroy']({'where':{'type':_0x23ca74,'resourceId':_0x28873b['id']}})[_0x7921('0x24')](function(){return _0x498170;});})[_0x7921('0x24')](function(){_0x17c30d[_0x7921('0x19')](0xcc)[_0x7921('0x18')]();});}};}function handleEntityNotFound(_0x1f3c20,_0x21e29a){return function(_0x75a412){if(!_0x75a412){_0x1f3c20[_0x7921('0x17')](0x194);}return _0x75a412;};}function handleError(_0x5b4f11,_0x3e6051){_0x3e6051=_0x3e6051||0x1f4;return function(_0x5f4dde){logger['error'](_0x5f4dde[_0x7921('0x29')]);if(_0x5f4dde[_0x7921('0x2a')]){delete _0x5f4dde[_0x7921('0x2a')];}_0x5b4f11[_0x7921('0x19')](_0x3e6051)[_0x7921('0x2b')](_0x5f4dde);};}exports[_0x7921('0x2c')]=function(_0x3cc549,_0x286631){var _0x1127da={},_0x4088be={},_0x32dd40={'count':0x0,'rows':[]};var _0x52bc78=_[_0x7921('0x2d')](db[_0x7921('0x2e')][_0x7921('0x2f')],function(_0x5607de){return{'name':_0x5607de[_0x7921('0x30')],'type':_0x5607de[_0x7921('0x31')][_0x7921('0x32')]};});_0x4088be['model']=_['map'](_0x52bc78,_0x7921('0x2a'));_0x4088be['query']=_['keys'](_0x3cc549[_0x7921('0x33')]);_0x4088be[_0x7921('0x34')]=_[_0x7921('0x35')](_0x4088be['model'],_0x4088be[_0x7921('0x33')]);_0x1127da[_0x7921('0x36')]=_[_0x7921('0x35')](_0x4088be['model'],qs[_0x7921('0x37')](_0x3cc549[_0x7921('0x33')][_0x7921('0x37')]));_0x1127da['attributes']=_0x1127da[_0x7921('0x36')]['length']?_0x1127da[_0x7921('0x36')]:_0x4088be[_0x7921('0x38')];if(!_0x3cc549[_0x7921('0x33')][_0x7921('0x39')](_0x7921('0x3a'))){_0x1127da[_0x7921('0x1d')]=qs[_0x7921('0x1d')](_0x3cc549[_0x7921('0x33')][_0x7921('0x1d')]);_0x1127da[_0x7921('0x1b')]=qs[_0x7921('0x1b')](_0x3cc549['query'][_0x7921('0x1b')]);}_0x1127da[_0x7921('0x3b')]=qs[_0x7921('0x3c')](_0x3cc549[_0x7921('0x33')][_0x7921('0x3c')]);_0x1127da[_0x7921('0x3d')]=qs[_0x7921('0x34')](_[_0x7921('0x3e')](_0x3cc549[_0x7921('0x33')],_0x4088be[_0x7921('0x34')]),_0x52bc78);if(_0x3cc549['query'][_0x7921('0x3f')]){_0x1127da[_0x7921('0x3d')]=_[_0x7921('0x40')](_0x1127da[_0x7921('0x3d')],{'$or':_[_0x7921('0x2d')](_0x52bc78,function(_0x2a1011){if(_0x2a1011[_0x7921('0x31')]!==_0x7921('0x41')){var _0x3dcde5={};_0x3dcde5[_0x2a1011[_0x7921('0x2a')]]={'$like':'%'+_0x3cc549[_0x7921('0x33')][_0x7921('0x3f')]+'%'};return _0x3dcde5;}})});}_0x1127da=_[_0x7921('0x40')]({},_0x1127da,_0x3cc549[_0x7921('0x42')]);var _0x379b40={'where':_0x1127da[_0x7921('0x3d')]};return db['Interval'][_0x7921('0x1e')](_0x379b40)[_0x7921('0x24')](function(_0x1d701c){_0x32dd40[_0x7921('0x1e')]=_0x1d701c;if(_0x3cc549[_0x7921('0x33')][_0x7921('0x43')]){_0x1127da[_0x7921('0x44')]=[{'all':!![]}];}return db['Interval'][_0x7921('0x45')](_0x1127da);})[_0x7921('0x24')](function(_0x1d5f89){_0x32dd40[_0x7921('0x46')]=_0x1d5f89;return _0x32dd40;})[_0x7921('0x24')](respondWithFilteredResult(_0x286631,_0x1127da))[_0x7921('0x47')](handleError(_0x286631,null));};exports['show']=function(_0x1b2765,_0x5c21b8){var _0x5a46a7={'raw':!![],'where':{'id':_0x1b2765[_0x7921('0x48')]['id']}},_0x3f47ff={};_0x3f47ff[_0x7921('0x38')]=_['keys'](db[_0x7921('0x2e')][_0x7921('0x2f')]);_0x3f47ff[_0x7921('0x33')]=_[_0x7921('0x49')](_0x1b2765[_0x7921('0x33')]);_0x3f47ff[_0x7921('0x34')]=_[_0x7921('0x35')](_0x3f47ff[_0x7921('0x38')],_0x3f47ff['query']);_0x5a46a7[_0x7921('0x36')]=_[_0x7921('0x35')](_0x3f47ff['model'],qs['fields'](_0x1b2765[_0x7921('0x33')][_0x7921('0x37')]));_0x5a46a7[_0x7921('0x36')]=_0x5a46a7[_0x7921('0x36')]['length']?_0x5a46a7['attributes']:_0x3f47ff[_0x7921('0x38')];if(_0x1b2765[_0x7921('0x33')]['includeAll']){_0x5a46a7[_0x7921('0x44')]=[{'all':!![]}];}_0x5a46a7=_[_0x7921('0x40')]({},_0x5a46a7,_0x1b2765[_0x7921('0x42')]);return db[_0x7921('0x2e')][_0x7921('0x4a')](_0x5a46a7)[_0x7921('0x24')](handleEntityNotFound(_0x5c21b8,null))[_0x7921('0x24')](respondWithResult(_0x5c21b8,null))[_0x7921('0x47')](handleError(_0x5c21b8,null));};exports[_0x7921('0x4b')]=function(_0x3ca947,_0x5810be){return db['Interval'][_0x7921('0x4b')](_0x3ca947['body'],{})[_0x7921('0x24')](function(_0x4ab819){var _0xd8fd6f=_0x3ca947[_0x7921('0x4c')][_0x7921('0x26')]({'plain':!![]});if(!_0xd8fd6f)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xd8fd6f['role']===_0x7921('0x4c')){var _0x3e26b=_0x4ab819[_0x7921('0x26')]({'plain':!![]});var _0x4ca87b='Intervals';return db[_0x7921('0x4d')]['find']({'where':{'name':_0x4ca87b,'userProfileId':_0xd8fd6f[_0x7921('0x4e')]},'raw':!![]})[_0x7921('0x24')](function(_0x553ea2){if(_0x553ea2&&_0x553ea2[_0x7921('0x4f')]===0x0){return db[_0x7921('0x28')][_0x7921('0x4b')]({'name':_0x3e26b[_0x7921('0x2a')],'resourceId':_0x3e26b['id'],'type':_0x553ea2[_0x7921('0x2a')],'sectionId':_0x553ea2['id']},{})['then'](function(){return _0x4ab819;});}else{return _0x4ab819;}})[_0x7921('0x47')](function(_0x38bd98){logger[_0x7921('0x50')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x38bd98);throw _0x38bd98;});}return _0x4ab819;})[_0x7921('0x24')](respondWithResult(_0x5810be,0xc9))[_0x7921('0x47')](handleError(_0x5810be,null));};exports[_0x7921('0x23')]=function(_0x205200,_0x5e72a1){if(_0x205200[_0x7921('0x51')]['id']){delete _0x205200[_0x7921('0x51')]['id'];}return db[_0x7921('0x2e')][_0x7921('0x4a')]({'where':{'id':_0x205200[_0x7921('0x48')]['id']}})['then'](handleEntityNotFound(_0x5e72a1,null))[_0x7921('0x24')](saveUpdates(_0x205200[_0x7921('0x51')],null))['then'](respondWithResult(_0x5e72a1,null))[_0x7921('0x47')](handleError(_0x5e72a1,null));};exports[_0x7921('0x25')]=function(_0x380bc0,_0x258a49){return db['Interval'][_0x7921('0x4a')]({'where':{'id':_0x380bc0[_0x7921('0x48')]['id']}})[_0x7921('0x24')](handleEntityNotFound(_0x258a49,null))[_0x7921('0x24')](removeEntity(_0x258a49,null))[_0x7921('0x47')](handleError(_0x258a49,null));};exports[_0x7921('0x52')]=function(_0x356bb7,_0x1e19da,_0x7428ef){if(_0x356bb7[_0x7921('0x51')]['id']){delete _0x356bb7[_0x7921('0x51')]['id'];}return db[_0x7921('0x2e')][_0x7921('0x4a')]({'where':{'id':_0x356bb7[_0x7921('0x48')]['id']}})[_0x7921('0x24')](handleEntityNotFound(_0x1e19da,null))[_0x7921('0x24')](function(_0x186b08){if(_0x186b08){_0x356bb7[_0x7921('0x51')][_0x7921('0x53')]=_0x186b08['id'];return db[_0x7921('0x2e')][_0x7921('0x4b')](_0x356bb7[_0x7921('0x51')]);}})[_0x7921('0x24')](respondWithResult(_0x1e19da,null))[_0x7921('0x47')](handleError(_0x1e19da,null));};exports[_0x7921('0x54')]=function(_0x1d8f9b,_0xd2dc57,_0x3a1be7){var _0xaee5e7={};var _0x29cb3c={};var _0x7a05fb;var _0x287737;return db[_0x7921('0x2e')][_0x7921('0x55')]({'where':{'id':_0x1d8f9b['params']['id']}})[_0x7921('0x24')](handleEntityNotFound(_0xd2dc57,null))[_0x7921('0x24')](function(_0x7f1e2a){if(_0x7f1e2a){_0x7a05fb=_0x7f1e2a;_0x29cb3c[_0x7921('0x38')]=_['keys'](db[_0x7921('0x2e')][_0x7921('0x2f')]);_0x29cb3c['query']=_[_0x7921('0x49')](_0x1d8f9b[_0x7921('0x33')]);_0x29cb3c[_0x7921('0x34')]=_[_0x7921('0x35')](_0x29cb3c[_0x7921('0x38')],_0x29cb3c[_0x7921('0x33')]);_0xaee5e7[_0x7921('0x36')]=_[_0x7921('0x35')](_0x29cb3c['model'],qs[_0x7921('0x37')](_0x1d8f9b[_0x7921('0x33')][_0x7921('0x37')]));_0xaee5e7[_0x7921('0x36')]=_0xaee5e7[_0x7921('0x36')]['length']?_0xaee5e7[_0x7921('0x36')]:_0x29cb3c[_0x7921('0x38')];_0xaee5e7[_0x7921('0x3b')]=qs[_0x7921('0x3c')](_0x1d8f9b[_0x7921('0x33')][_0x7921('0x3c')]);_0xaee5e7[_0x7921('0x3d')]=qs['filters'](_[_0x7921('0x3e')](_0x1d8f9b[_0x7921('0x33')],_0x29cb3c[_0x7921('0x34')]));if(_0x1d8f9b[_0x7921('0x33')][_0x7921('0x3f')]){_0xaee5e7['where']=_[_0x7921('0x40')](_0xaee5e7[_0x7921('0x3d')],{'$or':_[_0x7921('0x2d')](_0xaee5e7[_0x7921('0x36')],function(_0x1e7ffb){var _0x4daf88={};_0x4daf88[_0x1e7ffb]={'$like':'%'+_0x1d8f9b[_0x7921('0x33')][_0x7921('0x3f')]+'%'};return _0x4daf88;})});}_0xaee5e7=_[_0x7921('0x40')]({},_0xaee5e7,_0x1d8f9b[_0x7921('0x42')]);return _0x7a05fb['getIntervals'](_0xaee5e7);}})[_0x7921('0x24')](function(_0x5bb195){if(_0x5bb195){_0x287737=_0x5bb195[_0x7921('0x56')];if(!_0x1d8f9b['query']['hasOwnProperty'](_0x7921('0x3a'))){_0xaee5e7[_0x7921('0x1d')]=qs[_0x7921('0x1d')](_0x1d8f9b[_0x7921('0x33')][_0x7921('0x1d')]);_0xaee5e7['offset']=qs[_0x7921('0x1b')](_0x1d8f9b[_0x7921('0x33')]['offset']);}return _0x7a05fb['getIntervals'](_0xaee5e7);}})[_0x7921('0x24')](function(_0x4ea5d4){if(_0x4ea5d4){return _0x4ea5d4?{'count':_0x287737,'rows':_0x4ea5d4}:null;}})['then'](respondWithResult(_0xd2dc57,null))['catch'](handleError(_0xd2dc57,null));};exports[_0x7921('0x57')]=function(_0x5192ce,_0x5851c2,_0x58adba){return db[_0x7921('0x2e')][_0x7921('0x55')]({'where':{'id':_0x5192ce[_0x7921('0x48')]['id']}})[_0x7921('0x24')](handleEntityNotFound(_0x5851c2,null))[_0x7921('0x24')](function(_0x13e3e0){if(_0x13e3e0){return db[_0x7921('0x58')][_0x7921('0x59')](function(_0x113013){return db[_0x7921('0x2e')]['destroy']({'where':{'IntervalId':_0x5192ce['params']['id']},'transaction':_0x113013})[_0x7921('0x24')](function(_0x3675c1){var _0x3b9140=_['map'](_0x5192ce[_0x7921('0x51')],function(_0x5f248b){delete _0x5f248b['id'];_0x5f248b[_0x7921('0x53')]=_0x5192ce[_0x7921('0x48')]['id'];return _0x5f248b;});return db[_0x7921('0x2e')][_0x7921('0x5a')](_0x3b9140,{'transaction':_0x113013});});})[_0x7921('0x24')](function(){return db[_0x7921('0x2e')][_0x7921('0x45')]({'where':{'IntervalId':_0x5192ce[_0x7921('0x48')]['id']}});});}})[_0x7921('0x24')](respondWithResult(_0x5851c2,null))[_0x7921('0x47')](handleError(_0x5851c2,null));};