27ffda61b4f3c87cfccf50dd5007a8d4009eb66c
[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 _0x9131=['attributes','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','Interval','findAll','rows','catch','params','fields','find','create','role','user','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','addInterval','getIntervals','hasOwnProperty','addIntervals','findOne','sequelize','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','offset','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','Intervals','UserProfileResource','end','error','stack','name','send','index','map','rawAttributes','fieldName','type','query','keys','filters','intersection','model'];(function(_0x4a53d,_0x58a95e){var _0x27410e=function(_0x38fc90){while(--_0x38fc90){_0x4a53d['push'](_0x4a53d['shift']());}};_0x27410e(++_0x58a95e);}(_0x9131,0x133));var _0x1913=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9131[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x1913('0x0'));var rimraf=require(_0x1913('0x1'));var zipdir=require(_0x1913('0x2'));var jsonpatch=require(_0x1913('0x3'));var rp=require(_0x1913('0x4'));var moment=require('moment');var BPromise=require(_0x1913('0x5'));var Mustache=require(_0x1913('0x6'));var util=require(_0x1913('0x7'));var path=require(_0x1913('0x8'));var sox=require(_0x1913('0x9'));var csv=require(_0x1913('0xa'));var ejs=require(_0x1913('0xb'));var fs=require('fs');var fs_extra=require(_0x1913('0xc'));var _=require(_0x1913('0xd'));var squel=require(_0x1913('0xe'));var crypto=require(_0x1913('0xf'));var jsforce=require(_0x1913('0x10'));var deskjs=require(_0x1913('0x11'));var toCsv=require(_0x1913('0xa'));var querystring=require(_0x1913('0x12'));var Papa=require(_0x1913('0x13'));var Redis=require(_0x1913('0x14'));var authService=require(_0x1913('0x15'));var qs=require(_0x1913('0x16'));var as=require(_0x1913('0x17'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x1913('0x18'))(_0x1913('0x19'));var utils=require(_0x1913('0x1a'));var config=require(_0x1913('0x1b'));var licenseUtil=require('../../config/license/util');var db=require(_0x1913('0x1c'))['db'];var extensions=require(_0x1913('0x1d'));function respondWithStatusCode(_0x57da64,_0x2d8159){_0x2d8159=_0x2d8159||0xcc;return function(_0x1ff68d){if(_0x1ff68d){return _0x57da64[_0x1913('0x1e')](_0x2d8159);}return _0x57da64[_0x1913('0x1f')](_0x2d8159)['end']();};}function respondWithResult(_0x4e9728,_0x1daa43){_0x1daa43=_0x1daa43||0xc8;return function(_0x423000){if(_0x423000){return _0x4e9728[_0x1913('0x1f')](_0x1daa43)['json'](_0x423000);}};}function respondWithFilteredResult(_0x394d61,_0x3be623){return function(_0x2c024b){if(_0x2c024b){var _0x1eed96=typeof _0x3be623[_0x1913('0x20')]==='undefined'&&typeof _0x3be623[_0x1913('0x21')]==='undefined';var _0x3cd0d6=_0x2c024b[_0x1913('0x22')];var _0x41504a=_0x1eed96?0x0:_0x3be623[_0x1913('0x20')];var _0x1f09af=_0x1eed96?_0x2c024b[_0x1913('0x22')]:_0x3be623[_0x1913('0x20')]+_0x3be623[_0x1913('0x21')];var _0x33b12a;if(_0x1f09af>=_0x3cd0d6){_0x1f09af=_0x3cd0d6;_0x33b12a=0xc8;}else{_0x33b12a=0xce;}_0x394d61[_0x1913('0x1f')](_0x33b12a);return _0x394d61[_0x1913('0x23')](_0x1913('0x24'),_0x41504a+'-'+_0x1f09af+'/'+_0x3cd0d6)['json'](_0x2c024b);}return null;};}function patchUpdates(_0x3533e4){return function(_0x4fceb5){try{jsonpatch[_0x1913('0x25')](_0x4fceb5,_0x3533e4,!![]);}catch(_0x1a2073){return BPromise[_0x1913('0x26')](_0x1a2073);}return _0x4fceb5[_0x1913('0x27')]();};}function saveUpdates(_0x32f917,_0x126a47){return function(_0x21131e){if(_0x21131e){return _0x21131e[_0x1913('0x28')](_0x32f917)[_0x1913('0x29')](function(_0x27c46e){return _0x27c46e;});}return null;};}function removeEntity(_0x1fe4fa,_0x34184f){return function(_0x352906){if(_0x352906){return _0x352906[_0x1913('0x2a')]()['then'](function(){var _0x4f23e7=_0x352906[_0x1913('0x2b')]({'plain':!![]});var _0x1e6873=_0x1913('0x2c');return db[_0x1913('0x2d')][_0x1913('0x2a')]({'where':{'type':_0x1e6873,'resourceId':_0x4f23e7['id']}})['then'](function(){return _0x352906;});})['then'](function(){_0x1fe4fa[_0x1913('0x1f')](0xcc)[_0x1913('0x2e')]();});}};}function handleEntityNotFound(_0x5ed2f5,_0x295af5){return function(_0x537207){if(!_0x537207){_0x5ed2f5[_0x1913('0x1e')](0x194);}return _0x537207;};}function handleError(_0x1039b9,_0x597bc7){_0x597bc7=_0x597bc7||0x1f4;return function(_0x4e240f){logger[_0x1913('0x2f')](_0x4e240f[_0x1913('0x30')]);if(_0x4e240f['name']){delete _0x4e240f[_0x1913('0x31')];}_0x1039b9[_0x1913('0x1f')](_0x597bc7)[_0x1913('0x32')](_0x4e240f);};}exports[_0x1913('0x33')]=function(_0x4eed54,_0x136419){var _0x46e73d={},_0x4b5f72={},_0x3d1bd4={'count':0x0,'rows':[]};var _0x38f449=_[_0x1913('0x34')](db['Interval'][_0x1913('0x35')],function(_0x3a1b53){return{'name':_0x3a1b53[_0x1913('0x36')],'type':_0x3a1b53[_0x1913('0x37')]['key']};});_0x4b5f72['model']=_[_0x1913('0x34')](_0x38f449,_0x1913('0x31'));_0x4b5f72[_0x1913('0x38')]=_[_0x1913('0x39')](_0x4eed54[_0x1913('0x38')]);_0x4b5f72[_0x1913('0x3a')]=_[_0x1913('0x3b')](_0x4b5f72[_0x1913('0x3c')],_0x4b5f72[_0x1913('0x38')]);_0x46e73d['attributes']=_[_0x1913('0x3b')](_0x4b5f72['model'],qs['fields'](_0x4eed54[_0x1913('0x38')]['fields']));_0x46e73d[_0x1913('0x3d')]=_0x46e73d[_0x1913('0x3d')][_0x1913('0x3e')]?_0x46e73d['attributes']:_0x4b5f72[_0x1913('0x3c')];if(!_0x4eed54[_0x1913('0x38')]['hasOwnProperty'](_0x1913('0x3f'))){_0x46e73d[_0x1913('0x21')]=qs[_0x1913('0x21')](_0x4eed54[_0x1913('0x38')][_0x1913('0x21')]);_0x46e73d['offset']=qs[_0x1913('0x20')](_0x4eed54['query'][_0x1913('0x20')]);}_0x46e73d[_0x1913('0x40')]=qs['sort'](_0x4eed54['query'][_0x1913('0x41')]);_0x46e73d[_0x1913('0x42')]=qs[_0x1913('0x3a')](_[_0x1913('0x43')](_0x4eed54[_0x1913('0x38')],_0x4b5f72[_0x1913('0x3a')]),_0x38f449);if(_0x4eed54[_0x1913('0x38')][_0x1913('0x44')]){_0x46e73d[_0x1913('0x42')]=_[_0x1913('0x45')](_0x46e73d[_0x1913('0x42')],{'$or':_[_0x1913('0x34')](_0x38f449,function(_0x2b1907){if(_0x2b1907[_0x1913('0x37')]!==_0x1913('0x46')){var _0x528c81={};_0x528c81[_0x2b1907[_0x1913('0x31')]]={'$like':'%'+_0x4eed54[_0x1913('0x38')][_0x1913('0x44')]+'%'};return _0x528c81;}})});}_0x46e73d=_[_0x1913('0x45')]({},_0x46e73d,_0x4eed54[_0x1913('0x47')]);var _0x3d4fa4={'where':_0x46e73d[_0x1913('0x42')]};return db['Interval']['count'](_0x3d4fa4)[_0x1913('0x29')](function(_0x3049f6){_0x3d1bd4[_0x1913('0x22')]=_0x3049f6;if(_0x4eed54[_0x1913('0x38')][_0x1913('0x48')]){_0x46e73d[_0x1913('0x49')]=[{'all':!![]}];}return db[_0x1913('0x4a')][_0x1913('0x4b')](_0x46e73d);})[_0x1913('0x29')](function(_0x40dc1f){_0x3d1bd4[_0x1913('0x4c')]=_0x40dc1f;return _0x3d1bd4;})[_0x1913('0x29')](respondWithFilteredResult(_0x136419,_0x46e73d))[_0x1913('0x4d')](handleError(_0x136419,null));};exports['show']=function(_0x1dcf97,_0x3ad46d){var _0x22ada8={'raw':!![],'where':{'id':_0x1dcf97[_0x1913('0x4e')]['id']}},_0x3e0036={};_0x3e0036[_0x1913('0x3c')]=_[_0x1913('0x39')](db[_0x1913('0x4a')]['rawAttributes']);_0x3e0036[_0x1913('0x38')]=_[_0x1913('0x39')](_0x1dcf97[_0x1913('0x38')]);_0x3e0036[_0x1913('0x3a')]=_[_0x1913('0x3b')](_0x3e0036[_0x1913('0x3c')],_0x3e0036[_0x1913('0x38')]);_0x22ada8['attributes']=_['intersection'](_0x3e0036['model'],qs[_0x1913('0x4f')](_0x1dcf97[_0x1913('0x38')][_0x1913('0x4f')]));_0x22ada8[_0x1913('0x3d')]=_0x22ada8[_0x1913('0x3d')][_0x1913('0x3e')]?_0x22ada8[_0x1913('0x3d')]:_0x3e0036['model'];if(_0x1dcf97[_0x1913('0x38')][_0x1913('0x48')]){_0x22ada8['include']=[{'all':!![]}];}_0x22ada8=_['merge']({},_0x22ada8,_0x1dcf97[_0x1913('0x47')]);return db[_0x1913('0x4a')][_0x1913('0x50')](_0x22ada8)[_0x1913('0x29')](handleEntityNotFound(_0x3ad46d,null))[_0x1913('0x29')](respondWithResult(_0x3ad46d,null))[_0x1913('0x4d')](handleError(_0x3ad46d,null));};exports[_0x1913('0x51')]=function(_0x4fe44f,_0x108409){return db[_0x1913('0x4a')]['create'](_0x4fe44f['body'],{})[_0x1913('0x29')](function(_0x4df480){var _0x3318b5=_0x4fe44f['user'][_0x1913('0x2b')]({'plain':!![]});if(!_0x3318b5)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3318b5[_0x1913('0x52')]===_0x1913('0x53')){var _0x254be2=_0x4df480['get']({'plain':!![]});var _0x28d1d0='Intervals';return db['UserProfileSection'][_0x1913('0x50')]({'where':{'name':_0x28d1d0,'userProfileId':_0x3318b5['userProfileId']},'raw':!![]})[_0x1913('0x29')](function(_0x1270fa){if(_0x1270fa&&_0x1270fa['autoAssociation']===0x0){return db[_0x1913('0x2d')][_0x1913('0x51')]({'name':_0x254be2[_0x1913('0x31')],'resourceId':_0x254be2['id'],'type':_0x1270fa[_0x1913('0x31')],'sectionId':_0x1270fa['id']},{})[_0x1913('0x29')](function(){return _0x4df480;});}else{return _0x4df480;}})[_0x1913('0x4d')](function(_0x26a1be){logger[_0x1913('0x2f')](_0x1913('0x54'),_0x26a1be);throw _0x26a1be;});}return _0x4df480;})[_0x1913('0x29')](respondWithResult(_0x108409,0xc9))['catch'](handleError(_0x108409,null));};exports[_0x1913('0x28')]=function(_0x50dfa2,_0x45a503){if(_0x50dfa2[_0x1913('0x55')]['id']){delete _0x50dfa2[_0x1913('0x55')]['id'];}return db[_0x1913('0x4a')][_0x1913('0x50')]({'where':{'id':_0x50dfa2[_0x1913('0x4e')]['id']}})[_0x1913('0x29')](handleEntityNotFound(_0x45a503,null))[_0x1913('0x29')](saveUpdates(_0x50dfa2[_0x1913('0x55')],null))[_0x1913('0x29')](respondWithResult(_0x45a503,null))[_0x1913('0x4d')](handleError(_0x45a503,null));};exports['destroy']=function(_0x312fc1,_0x561c6b){return db[_0x1913('0x4a')]['find']({'where':{'id':_0x312fc1['params']['id']}})[_0x1913('0x29')](handleEntityNotFound(_0x561c6b,null))[_0x1913('0x29')](removeEntity(_0x561c6b,null))[_0x1913('0x4d')](handleError(_0x561c6b,null));};exports[_0x1913('0x56')]=function(_0x15b078,_0x26ee34,_0x1448f3){if(_0x15b078['body']['id']){delete _0x15b078[_0x1913('0x55')]['id'];}return db[_0x1913('0x4a')][_0x1913('0x50')]({'where':{'id':_0x15b078[_0x1913('0x4e')]['id']}})[_0x1913('0x29')](handleEntityNotFound(_0x26ee34,null))[_0x1913('0x29')](function(_0x4bed86){if(_0x4bed86){_0x15b078[_0x1913('0x55')]['IntervalId']=_0x4bed86['id'];return db[_0x1913('0x4a')][_0x1913('0x51')](_0x15b078[_0x1913('0x55')]);}})[_0x1913('0x29')](respondWithResult(_0x26ee34,null))[_0x1913('0x4d')](handleError(_0x26ee34,null));};exports['getIntervals']=function(_0x170fb7,_0x5c7d94,_0xb698eb){var _0x4c3f6b={};var _0x1982a3={};var _0x57f13e;var _0x33bccd;return db[_0x1913('0x4a')]['findOne']({'where':{'id':_0x170fb7[_0x1913('0x4e')]['id']}})[_0x1913('0x29')](handleEntityNotFound(_0x5c7d94,null))[_0x1913('0x29')](function(_0x48a9e8){if(_0x48a9e8){_0x57f13e=_0x48a9e8;_0x1982a3[_0x1913('0x3c')]=_['keys'](db[_0x1913('0x4a')][_0x1913('0x35')]);_0x1982a3['query']=_[_0x1913('0x39')](_0x170fb7['query']);_0x1982a3[_0x1913('0x3a')]=_[_0x1913('0x3b')](_0x1982a3[_0x1913('0x3c')],_0x1982a3['query']);_0x4c3f6b[_0x1913('0x3d')]=_[_0x1913('0x3b')](_0x1982a3[_0x1913('0x3c')],qs[_0x1913('0x4f')](_0x170fb7[_0x1913('0x38')]['fields']));_0x4c3f6b['attributes']=_0x4c3f6b[_0x1913('0x3d')][_0x1913('0x3e')]?_0x4c3f6b['attributes']:_0x1982a3[_0x1913('0x3c')];_0x4c3f6b[_0x1913('0x40')]=qs[_0x1913('0x41')](_0x170fb7[_0x1913('0x38')][_0x1913('0x41')]);_0x4c3f6b[_0x1913('0x42')]=qs[_0x1913('0x3a')](_[_0x1913('0x43')](_0x170fb7[_0x1913('0x38')],_0x1982a3['filters']));if(_0x170fb7[_0x1913('0x38')][_0x1913('0x44')]){_0x4c3f6b[_0x1913('0x42')]=_[_0x1913('0x45')](_0x4c3f6b[_0x1913('0x42')],{'$or':_[_0x1913('0x34')](_0x4c3f6b['attributes'],function(_0x55a807){var _0x3f6ce4={};_0x3f6ce4[_0x55a807]={'$like':'%'+_0x170fb7['query']['filter']+'%'};return _0x3f6ce4;})});}_0x4c3f6b=_[_0x1913('0x45')]({},_0x4c3f6b,_0x170fb7[_0x1913('0x47')]);return _0x57f13e[_0x1913('0x57')](_0x4c3f6b);}})[_0x1913('0x29')](function(_0x304928){if(_0x304928){_0x33bccd=_0x304928[_0x1913('0x3e')];if(!_0x170fb7['query'][_0x1913('0x58')]('nolimit')){_0x4c3f6b[_0x1913('0x21')]=qs[_0x1913('0x21')](_0x170fb7[_0x1913('0x38')][_0x1913('0x21')]);_0x4c3f6b['offset']=qs['offset'](_0x170fb7[_0x1913('0x38')][_0x1913('0x20')]);}return _0x57f13e['getIntervals'](_0x4c3f6b);}})['then'](function(_0x104b20){if(_0x104b20){return _0x104b20?{'count':_0x33bccd,'rows':_0x104b20}:null;}})[_0x1913('0x29')](respondWithResult(_0x5c7d94,null))[_0x1913('0x4d')](handleError(_0x5c7d94,null));};exports[_0x1913('0x59')]=function(_0x35d555,_0x4828e2,_0x530bf3){return db[_0x1913('0x4a')][_0x1913('0x5a')]({'where':{'id':_0x35d555['params']['id']}})['then'](handleEntityNotFound(_0x4828e2,null))[_0x1913('0x29')](function(_0x3af290){if(_0x3af290){return db[_0x1913('0x5b')]['transaction'](function(_0x1cf19e){return db['Interval']['destroy']({'where':{'IntervalId':_0x35d555['params']['id']},'transaction':_0x1cf19e})[_0x1913('0x29')](function(_0x15fadb){var _0x49419b=_[_0x1913('0x34')](_0x35d555[_0x1913('0x55')],function(_0x4163cc){delete _0x4163cc['id'];_0x4163cc['IntervalId']=_0x35d555['params']['id'];return _0x4163cc;});return db[_0x1913('0x4a')]['bulkCreate'](_0x49419b,{'transaction':_0x1cf19e});});})[_0x1913('0x29')](function(){return db['Interval'][_0x1913('0x4b')]({'where':{'IntervalId':_0x35d555['params']['id']}});});}})[_0x1913('0x29')](respondWithResult(_0x4828e2,null))[_0x1913('0x4d')](handleError(_0x4828e2,null));};