ec6ede47acbfa2ffb1088e2de36a6ecb3fe51ea7
[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 _0x0e18=['Interval','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','addInterval','IntervalId','findOne','getIntervals','nolimit','addIntervals','sequelize','transaction','bulkCreate','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../components/extensions/rewrite','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','then','get','Intervals','UserProfileResource','end','error','stack','name','send','index'];(function(_0x5c4f6b,_0x2cdfce){var _0x104c4e=function(_0x31171b){while(--_0x31171b){_0x5c4f6b['push'](_0x5c4f6b['shift']());}};_0x104c4e(++_0x2cdfce);}(_0x0e18,0x8c));var _0x80e1=function(_0x2b74f6,_0x3ffa15){_0x2b74f6=_0x2b74f6-0x0;var _0x198b0f=_0x0e18[_0x2b74f6];return _0x198b0f;};'use strict';var emlformat=require(_0x80e1('0x0'));var rimraf=require(_0x80e1('0x1'));var zipdir=require(_0x80e1('0x2'));var jsonpatch=require(_0x80e1('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x80e1('0x4'));var Mustache=require(_0x80e1('0x5'));var util=require(_0x80e1('0x6'));var path=require(_0x80e1('0x7'));var sox=require('sox');var csv=require(_0x80e1('0x8'));var ejs=require(_0x80e1('0x9'));var fs=require('fs');var fs_extra=require(_0x80e1('0xa'));var _=require(_0x80e1('0xb'));var squel=require(_0x80e1('0xc'));var crypto=require('crypto');var jsforce=require(_0x80e1('0xd'));var deskjs=require(_0x80e1('0xe'));var toCsv=require(_0x80e1('0x8'));var querystring=require(_0x80e1('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x80e1('0x10'));var qs=require(_0x80e1('0x11'));var as=require(_0x80e1('0x12'));var hardwareService=require(_0x80e1('0x13'));var logger=require('../../config/logger')(_0x80e1('0x14'));var utils=require('../../config/utils');var config=require(_0x80e1('0x15'));var licenseUtil=require(_0x80e1('0x16'));var db=require('../../mysqldb')['db'];var extensions=require(_0x80e1('0x17'));function respondWithStatusCode(_0x4ab667,_0x2bafcc){_0x2bafcc=_0x2bafcc||0xcc;return function(_0x32bbc2){if(_0x32bbc2){return _0x4ab667['sendStatus'](_0x2bafcc);}return _0x4ab667['status'](_0x2bafcc)['end']();};}function respondWithResult(_0x3c8afc,_0x3da5dc){_0x3da5dc=_0x3da5dc||0xc8;return function(_0x392a38){if(_0x392a38){return _0x3c8afc[_0x80e1('0x18')](_0x3da5dc)[_0x80e1('0x19')](_0x392a38);}};}function respondWithFilteredResult(_0x572901,_0x4947fa){return function(_0x298ee9){if(_0x298ee9){var _0xb532ec=typeof _0x4947fa[_0x80e1('0x1a')]===_0x80e1('0x1b')&&typeof _0x4947fa[_0x80e1('0x1c')]===_0x80e1('0x1b');var _0xc89e58=_0x298ee9[_0x80e1('0x1d')];var _0x1de5a6=_0xb532ec?0x0:_0x4947fa[_0x80e1('0x1a')];var _0xca26f7=_0xb532ec?_0x298ee9[_0x80e1('0x1d')]:_0x4947fa[_0x80e1('0x1a')]+_0x4947fa[_0x80e1('0x1c')];var _0x231cd3;if(_0xca26f7>=_0xc89e58){_0xca26f7=_0xc89e58;_0x231cd3=0xc8;}else{_0x231cd3=0xce;}_0x572901['status'](_0x231cd3);return _0x572901[_0x80e1('0x1e')](_0x80e1('0x1f'),_0x1de5a6+'-'+_0xca26f7+'/'+_0xc89e58)[_0x80e1('0x19')](_0x298ee9);}return null;};}function patchUpdates(_0x357a0d){return function(_0x47d6df){try{jsonpatch[_0x80e1('0x20')](_0x47d6df,_0x357a0d,!![]);}catch(_0x554938){return BPromise[_0x80e1('0x21')](_0x554938);}return _0x47d6df['save']();};}function saveUpdates(_0x4270af,_0x5f16b3){return function(_0x37a7f7){if(_0x37a7f7){return _0x37a7f7[_0x80e1('0x22')](_0x4270af)['then'](function(_0x117c55){return _0x117c55;});}return null;};}function removeEntity(_0x217fb9,_0x393593){return function(_0x269d10){if(_0x269d10){return _0x269d10[_0x80e1('0x23')]()[_0x80e1('0x24')](function(){var _0x5dbf68=_0x269d10[_0x80e1('0x25')]({'plain':!![]});var _0x2977a9=_0x80e1('0x26');return db[_0x80e1('0x27')][_0x80e1('0x23')]({'where':{'type':_0x2977a9,'resourceId':_0x5dbf68['id']}})[_0x80e1('0x24')](function(){return _0x269d10;});})[_0x80e1('0x24')](function(){_0x217fb9['status'](0xcc)[_0x80e1('0x28')]();});}};}function handleEntityNotFound(_0x13058d,_0xc9aca6){return function(_0xf532c7){if(!_0xf532c7){_0x13058d['sendStatus'](0x194);}return _0xf532c7;};}function handleError(_0x11810e,_0x237099){_0x237099=_0x237099||0x1f4;return function(_0x444f82){logger[_0x80e1('0x29')](_0x444f82[_0x80e1('0x2a')]);if(_0x444f82['name']){delete _0x444f82[_0x80e1('0x2b')];}_0x11810e['status'](_0x237099)[_0x80e1('0x2c')](_0x444f82);};}exports[_0x80e1('0x2d')]=function(_0x1ce850,_0x703f86){var _0x2680c5={},_0x1b7f0e={},_0x43e13f={'count':0x0,'rows':[]};var _0x51c5b2=_['map'](db[_0x80e1('0x2e')][_0x80e1('0x2f')],function(_0x1c02d2){return{'name':_0x1c02d2[_0x80e1('0x30')],'type':_0x1c02d2['type'][_0x80e1('0x31')]};});_0x1b7f0e[_0x80e1('0x32')]=_[_0x80e1('0x33')](_0x51c5b2,_0x80e1('0x2b'));_0x1b7f0e[_0x80e1('0x34')]=_[_0x80e1('0x35')](_0x1ce850[_0x80e1('0x34')]);_0x1b7f0e[_0x80e1('0x36')]=_[_0x80e1('0x37')](_0x1b7f0e[_0x80e1('0x32')],_0x1b7f0e[_0x80e1('0x34')]);_0x2680c5[_0x80e1('0x38')]=_[_0x80e1('0x37')](_0x1b7f0e[_0x80e1('0x32')],qs[_0x80e1('0x39')](_0x1ce850[_0x80e1('0x34')][_0x80e1('0x39')]));_0x2680c5[_0x80e1('0x38')]=_0x2680c5[_0x80e1('0x38')]['length']?_0x2680c5[_0x80e1('0x38')]:_0x1b7f0e[_0x80e1('0x32')];if(!_0x1ce850[_0x80e1('0x34')][_0x80e1('0x3a')]('nolimit')){_0x2680c5[_0x80e1('0x1c')]=qs['limit'](_0x1ce850[_0x80e1('0x34')][_0x80e1('0x1c')]);_0x2680c5[_0x80e1('0x1a')]=qs['offset'](_0x1ce850[_0x80e1('0x34')][_0x80e1('0x1a')]);}_0x2680c5[_0x80e1('0x3b')]=qs[_0x80e1('0x3c')](_0x1ce850[_0x80e1('0x34')][_0x80e1('0x3c')]);_0x2680c5['where']=qs['filters'](_[_0x80e1('0x3d')](_0x1ce850['query'],_0x1b7f0e['filters']),_0x51c5b2);if(_0x1ce850[_0x80e1('0x34')][_0x80e1('0x3e')]){_0x2680c5[_0x80e1('0x3f')]=_[_0x80e1('0x40')](_0x2680c5[_0x80e1('0x3f')],{'$or':_[_0x80e1('0x33')](_0x51c5b2,function(_0x4c9283){if(_0x4c9283['type']!==_0x80e1('0x41')){var _0x1f79d7={};_0x1f79d7[_0x4c9283[_0x80e1('0x2b')]]={'$like':'%'+_0x1ce850[_0x80e1('0x34')]['filter']+'%'};return _0x1f79d7;}})});}_0x2680c5=_[_0x80e1('0x40')]({},_0x2680c5,_0x1ce850[_0x80e1('0x42')]);var _0x24225b={'where':_0x2680c5[_0x80e1('0x3f')]};return db[_0x80e1('0x2e')][_0x80e1('0x1d')](_0x24225b)[_0x80e1('0x24')](function(_0x979a3f){_0x43e13f[_0x80e1('0x1d')]=_0x979a3f;if(_0x1ce850[_0x80e1('0x34')][_0x80e1('0x43')]){_0x2680c5[_0x80e1('0x44')]=[{'all':!![]}];}return db['Interval'][_0x80e1('0x45')](_0x2680c5);})['then'](function(_0x1b1e91){_0x43e13f[_0x80e1('0x46')]=_0x1b1e91;return _0x43e13f;})[_0x80e1('0x24')](respondWithFilteredResult(_0x703f86,_0x2680c5))[_0x80e1('0x47')](handleError(_0x703f86,null));};exports['show']=function(_0x52d09b,_0x5394df){var _0x13c297={'raw':!![],'where':{'id':_0x52d09b['params']['id']}},_0x677944={};_0x677944[_0x80e1('0x32')]=_[_0x80e1('0x35')](db['Interval']['rawAttributes']);_0x677944[_0x80e1('0x34')]=_['keys'](_0x52d09b[_0x80e1('0x34')]);_0x677944[_0x80e1('0x36')]=_[_0x80e1('0x37')](_0x677944['model'],_0x677944[_0x80e1('0x34')]);_0x13c297[_0x80e1('0x38')]=_[_0x80e1('0x37')](_0x677944[_0x80e1('0x32')],qs[_0x80e1('0x39')](_0x52d09b[_0x80e1('0x34')]['fields']));_0x13c297[_0x80e1('0x38')]=_0x13c297['attributes'][_0x80e1('0x48')]?_0x13c297[_0x80e1('0x38')]:_0x677944[_0x80e1('0x32')];if(_0x52d09b[_0x80e1('0x34')]['includeAll']){_0x13c297[_0x80e1('0x44')]=[{'all':!![]}];}_0x13c297=_[_0x80e1('0x40')]({},_0x13c297,_0x52d09b[_0x80e1('0x42')]);return db[_0x80e1('0x2e')][_0x80e1('0x49')](_0x13c297)[_0x80e1('0x24')](handleEntityNotFound(_0x5394df,null))[_0x80e1('0x24')](respondWithResult(_0x5394df,null))[_0x80e1('0x47')](handleError(_0x5394df,null));};exports[_0x80e1('0x4a')]=function(_0x27bb8f,_0x2c9a83){return db[_0x80e1('0x2e')][_0x80e1('0x4a')](_0x27bb8f[_0x80e1('0x4b')],{})[_0x80e1('0x24')](function(_0x57df8c){var _0x3e73e6=_0x27bb8f[_0x80e1('0x4c')][_0x80e1('0x25')]({'plain':!![]});if(!_0x3e73e6)throw new Error(_0x80e1('0x4d'));if(_0x3e73e6[_0x80e1('0x4e')]===_0x80e1('0x4c')){var _0x217ea6=_0x57df8c[_0x80e1('0x25')]({'plain':!![]});var _0x5992f6=_0x80e1('0x26');return db[_0x80e1('0x4f')]['find']({'where':{'name':_0x5992f6,'userProfileId':_0x3e73e6[_0x80e1('0x50')]},'raw':!![]})[_0x80e1('0x24')](function(_0x561b66){if(_0x561b66&&_0x561b66[_0x80e1('0x51')]===0x0){return db[_0x80e1('0x27')]['create']({'name':_0x217ea6['name'],'resourceId':_0x217ea6['id'],'type':_0x561b66[_0x80e1('0x2b')],'sectionId':_0x561b66['id']},{})[_0x80e1('0x24')](function(){return _0x57df8c;});}else{return _0x57df8c;}})[_0x80e1('0x47')](function(_0x18aa09){logger[_0x80e1('0x29')](_0x80e1('0x52'),_0x18aa09);throw _0x18aa09;});}return _0x57df8c;})['then'](respondWithResult(_0x2c9a83,0xc9))['catch'](handleError(_0x2c9a83,null));};exports[_0x80e1('0x22')]=function(_0xfdc5a5,_0x5be23b){if(_0xfdc5a5[_0x80e1('0x4b')]['id']){delete _0xfdc5a5['body']['id'];}return db[_0x80e1('0x2e')][_0x80e1('0x49')]({'where':{'id':_0xfdc5a5['params']['id']}})[_0x80e1('0x24')](handleEntityNotFound(_0x5be23b,null))[_0x80e1('0x24')](saveUpdates(_0xfdc5a5[_0x80e1('0x4b')],null))['then'](respondWithResult(_0x5be23b,null))[_0x80e1('0x47')](handleError(_0x5be23b,null));};exports[_0x80e1('0x23')]=function(_0x2fa70c,_0x30a87f){return db[_0x80e1('0x2e')][_0x80e1('0x49')]({'where':{'id':_0x2fa70c[_0x80e1('0x53')]['id']}})[_0x80e1('0x24')](handleEntityNotFound(_0x30a87f,null))[_0x80e1('0x24')](removeEntity(_0x30a87f,null))[_0x80e1('0x47')](handleError(_0x30a87f,null));};exports[_0x80e1('0x54')]=function(_0x4fbfad,_0x319fc6,_0x24fed4){if(_0x4fbfad[_0x80e1('0x4b')]['id']){delete _0x4fbfad['body']['id'];}return db[_0x80e1('0x2e')]['find']({'where':{'id':_0x4fbfad['params']['id']}})[_0x80e1('0x24')](handleEntityNotFound(_0x319fc6,null))[_0x80e1('0x24')](function(_0x173c03){if(_0x173c03){_0x4fbfad['body'][_0x80e1('0x55')]=_0x173c03['id'];return db['Interval'][_0x80e1('0x4a')](_0x4fbfad['body']);}})[_0x80e1('0x24')](respondWithResult(_0x319fc6,null))['catch'](handleError(_0x319fc6,null));};exports['getIntervals']=function(_0x4c8aae,_0x6d169d,_0x1571c0){var _0x312464={};var _0x3fffc0={};var _0x4e8658;var _0x433edf;return db[_0x80e1('0x2e')][_0x80e1('0x56')]({'where':{'id':_0x4c8aae[_0x80e1('0x53')]['id']}})['then'](handleEntityNotFound(_0x6d169d,null))['then'](function(_0x236da6){if(_0x236da6){_0x4e8658=_0x236da6;_0x3fffc0[_0x80e1('0x32')]=_[_0x80e1('0x35')](db['Interval']['rawAttributes']);_0x3fffc0[_0x80e1('0x34')]=_[_0x80e1('0x35')](_0x4c8aae[_0x80e1('0x34')]);_0x3fffc0[_0x80e1('0x36')]=_[_0x80e1('0x37')](_0x3fffc0[_0x80e1('0x32')],_0x3fffc0[_0x80e1('0x34')]);_0x312464['attributes']=_[_0x80e1('0x37')](_0x3fffc0[_0x80e1('0x32')],qs[_0x80e1('0x39')](_0x4c8aae[_0x80e1('0x34')][_0x80e1('0x39')]));_0x312464['attributes']=_0x312464[_0x80e1('0x38')][_0x80e1('0x48')]?_0x312464[_0x80e1('0x38')]:_0x3fffc0[_0x80e1('0x32')];_0x312464['order']=qs[_0x80e1('0x3c')](_0x4c8aae[_0x80e1('0x34')][_0x80e1('0x3c')]);_0x312464[_0x80e1('0x3f')]=qs[_0x80e1('0x36')](_[_0x80e1('0x3d')](_0x4c8aae['query'],_0x3fffc0['filters']));if(_0x4c8aae['query'][_0x80e1('0x3e')]){_0x312464[_0x80e1('0x3f')]=_['merge'](_0x312464[_0x80e1('0x3f')],{'$or':_[_0x80e1('0x33')](_0x312464[_0x80e1('0x38')],function(_0x4d9ad0){var _0x29d325={};_0x29d325[_0x4d9ad0]={'$like':'%'+_0x4c8aae[_0x80e1('0x34')][_0x80e1('0x3e')]+'%'};return _0x29d325;})});}_0x312464=_[_0x80e1('0x40')]({},_0x312464,_0x4c8aae[_0x80e1('0x42')]);return _0x4e8658[_0x80e1('0x57')](_0x312464);}})[_0x80e1('0x24')](function(_0x13beae){if(_0x13beae){_0x433edf=_0x13beae[_0x80e1('0x48')];if(!_0x4c8aae['query'][_0x80e1('0x3a')](_0x80e1('0x58'))){_0x312464[_0x80e1('0x1c')]=qs['limit'](_0x4c8aae['query']['limit']);_0x312464[_0x80e1('0x1a')]=qs[_0x80e1('0x1a')](_0x4c8aae[_0x80e1('0x34')][_0x80e1('0x1a')]);}return _0x4e8658[_0x80e1('0x57')](_0x312464);}})['then'](function(_0x72adfe){if(_0x72adfe){return _0x72adfe?{'count':_0x433edf,'rows':_0x72adfe}:null;}})[_0x80e1('0x24')](respondWithResult(_0x6d169d,null))[_0x80e1('0x47')](handleError(_0x6d169d,null));};exports[_0x80e1('0x59')]=function(_0x137744,_0x2426e9,_0x216f9a){return db[_0x80e1('0x2e')][_0x80e1('0x56')]({'where':{'id':_0x137744['params']['id']}})[_0x80e1('0x24')](handleEntityNotFound(_0x2426e9,null))['then'](function(_0xb479f9){if(_0xb479f9){return db[_0x80e1('0x5a')][_0x80e1('0x5b')](function(_0x3319d4){return db[_0x80e1('0x2e')][_0x80e1('0x23')]({'where':{'IntervalId':_0x137744['params']['id']},'transaction':_0x3319d4})[_0x80e1('0x24')](function(_0x59cef1){var _0x25ac2a=_[_0x80e1('0x33')](_0x137744['body'],function(_0x2548ec){delete _0x2548ec['id'];_0x2548ec[_0x80e1('0x55')]=_0x137744[_0x80e1('0x53')]['id'];return _0x2548ec;});return db['Interval'][_0x80e1('0x5c')](_0x25ac2a,{'transaction':_0x3319d4});});})[_0x80e1('0x24')](function(){return db[_0x80e1('0x2e')][_0x80e1('0x45')]({'where':{'IntervalId':_0x137744[_0x80e1('0x53')]['id']}});});}})['then'](respondWithResult(_0x2426e9,null))[_0x80e1('0x47')](handleError(_0x2426e9,null));};