Built motion from commit 19a84241.|2.5.34
[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 _0x8dac=['fieldName','type','key','model','map','query','keys','filters','intersection','fields','attributes','length','nolimit','sort','where','pick','filter','VIRTUAL','merge','includeAll','findAll','rows','show','rawAttributes','include','options','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','addInterval','IntervalId','getIntervals','findOne','order','hasOwnProperty','sequelize','transaction','bulkCreate','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','then','get','Intervals','UserProfileResource','destroy','error','name','send','index','Interval'];(function(_0x12e3c2,_0x7981a3){var _0x5c065e=function(_0x4c1796){while(--_0x4c1796){_0x12e3c2['push'](_0x12e3c2['shift']());}};_0x5c065e(++_0x7981a3);}(_0x8dac,0xea));var _0xc8da=function(_0x5a14e6,_0x1ee02a){_0x5a14e6=_0x5a14e6-0x0;var _0x4416ec=_0x8dac[_0x5a14e6];return _0x4416ec;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xc8da('0x0'));var rp=require(_0xc8da('0x1'));var moment=require(_0xc8da('0x2'));var BPromise=require(_0xc8da('0x3'));var Mustache=require('mustache');var util=require(_0xc8da('0x4'));var path=require(_0xc8da('0x5'));var sox=require(_0xc8da('0x6'));var csv=require(_0xc8da('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xc8da('0x8'));var _=require(_0xc8da('0x9'));var squel=require(_0xc8da('0xa'));var crypto=require(_0xc8da('0xb'));var jsforce=require(_0xc8da('0xc'));var deskjs=require(_0xc8da('0xd'));var toCsv=require('to-csv');var querystring=require(_0xc8da('0xe'));var Papa=require(_0xc8da('0xf'));var Redis=require(_0xc8da('0x10'));var authService=require(_0xc8da('0x11'));var qs=require(_0xc8da('0x12'));var as=require(_0xc8da('0x13'));var hardwareService=require(_0xc8da('0x14'));var logger=require(_0xc8da('0x15'))(_0xc8da('0x16'));var utils=require('../../config/utils');var config=require(_0xc8da('0x17'));var licenseUtil=require(_0xc8da('0x18'));var db=require(_0xc8da('0x19'))['db'];var extensions=require(_0xc8da('0x1a'));function respondWithStatusCode(_0x9f37de,_0x3abb88){_0x3abb88=_0x3abb88||0xcc;return function(_0x210ad4){if(_0x210ad4){return _0x9f37de[_0xc8da('0x1b')](_0x3abb88);}return _0x9f37de[_0xc8da('0x1c')](_0x3abb88)[_0xc8da('0x1d')]();};}function respondWithResult(_0x563add,_0x667913){_0x667913=_0x667913||0xc8;return function(_0x340552){if(_0x340552){return _0x563add[_0xc8da('0x1c')](_0x667913)['json'](_0x340552);}};}function respondWithFilteredResult(_0x35ec3e,_0x14eedf){return function(_0x4e5e8f){if(_0x4e5e8f){var _0x3a1928=typeof _0x14eedf[_0xc8da('0x1e')]===_0xc8da('0x1f')&&typeof _0x14eedf['limit']===_0xc8da('0x1f');var _0x4822fa=_0x4e5e8f['count'];var _0x1af134=_0x3a1928?0x0:_0x14eedf['offset'];var _0x4f372f=_0x3a1928?_0x4e5e8f[_0xc8da('0x20')]:_0x14eedf[_0xc8da('0x1e')]+_0x14eedf[_0xc8da('0x21')];var _0x6b9a76;if(_0x4f372f>=_0x4822fa){_0x4f372f=_0x4822fa;_0x6b9a76=0xc8;}else{_0x6b9a76=0xce;}_0x35ec3e[_0xc8da('0x1c')](_0x6b9a76);return _0x35ec3e[_0xc8da('0x22')](_0xc8da('0x23'),_0x1af134+'-'+_0x4f372f+'/'+_0x4822fa)[_0xc8da('0x24')](_0x4e5e8f);}return null;};}function patchUpdates(_0x4a7a1f){return function(_0x1b99ba){try{jsonpatch[_0xc8da('0x25')](_0x1b99ba,_0x4a7a1f,!![]);}catch(_0x15fffe){return BPromise['reject'](_0x15fffe);}return _0x1b99ba['save']();};}function saveUpdates(_0x38a926,_0x416ae4){return function(_0x1f09d6){if(_0x1f09d6){return _0x1f09d6['update'](_0x38a926)[_0xc8da('0x26')](function(_0x5a6c86){return _0x5a6c86;});}return null;};}function removeEntity(_0xb3e1b6,_0x1e8674){return function(_0x414be4){if(_0x414be4){return _0x414be4['destroy']()['then'](function(){var _0xc85d5f=_0x414be4[_0xc8da('0x27')]({'plain':!![]});var _0x1b095d=_0xc8da('0x28');return db[_0xc8da('0x29')][_0xc8da('0x2a')]({'where':{'type':_0x1b095d,'resourceId':_0xc85d5f['id']}})[_0xc8da('0x26')](function(){return _0x414be4;});})[_0xc8da('0x26')](function(){_0xb3e1b6[_0xc8da('0x1c')](0xcc)[_0xc8da('0x1d')]();});}};}function handleEntityNotFound(_0x279413,_0x5bf083){return function(_0x2005aa){if(!_0x2005aa){_0x279413[_0xc8da('0x1b')](0x194);}return _0x2005aa;};}function handleError(_0x5d17b4,_0x80ba2e){_0x80ba2e=_0x80ba2e||0x1f4;return function(_0x46161f){logger[_0xc8da('0x2b')](_0x46161f['stack']);if(_0x46161f[_0xc8da('0x2c')]){delete _0x46161f[_0xc8da('0x2c')];}_0x5d17b4['status'](_0x80ba2e)[_0xc8da('0x2d')](_0x46161f);};}exports[_0xc8da('0x2e')]=function(_0x254091,_0x563434){var _0x286f19={},_0x4df3ca={},_0x51d93d={'count':0x0,'rows':[]};var _0x9a6849=_['map'](db[_0xc8da('0x2f')]['rawAttributes'],function(_0x56911a){return{'name':_0x56911a[_0xc8da('0x30')],'type':_0x56911a[_0xc8da('0x31')][_0xc8da('0x32')]};});_0x4df3ca[_0xc8da('0x33')]=_[_0xc8da('0x34')](_0x9a6849,_0xc8da('0x2c'));_0x4df3ca[_0xc8da('0x35')]=_[_0xc8da('0x36')](_0x254091[_0xc8da('0x35')]);_0x4df3ca[_0xc8da('0x37')]=_[_0xc8da('0x38')](_0x4df3ca[_0xc8da('0x33')],_0x4df3ca[_0xc8da('0x35')]);_0x286f19['attributes']=_[_0xc8da('0x38')](_0x4df3ca[_0xc8da('0x33')],qs[_0xc8da('0x39')](_0x254091[_0xc8da('0x35')][_0xc8da('0x39')]));_0x286f19[_0xc8da('0x3a')]=_0x286f19[_0xc8da('0x3a')][_0xc8da('0x3b')]?_0x286f19['attributes']:_0x4df3ca[_0xc8da('0x33')];if(!_0x254091[_0xc8da('0x35')]['hasOwnProperty'](_0xc8da('0x3c'))){_0x286f19[_0xc8da('0x21')]=qs[_0xc8da('0x21')](_0x254091[_0xc8da('0x35')][_0xc8da('0x21')]);_0x286f19[_0xc8da('0x1e')]=qs[_0xc8da('0x1e')](_0x254091[_0xc8da('0x35')][_0xc8da('0x1e')]);}_0x286f19['order']=qs[_0xc8da('0x3d')](_0x254091[_0xc8da('0x35')][_0xc8da('0x3d')]);_0x286f19[_0xc8da('0x3e')]=qs[_0xc8da('0x37')](_[_0xc8da('0x3f')](_0x254091[_0xc8da('0x35')],_0x4df3ca[_0xc8da('0x37')]),_0x9a6849);if(_0x254091[_0xc8da('0x35')][_0xc8da('0x40')]){_0x286f19[_0xc8da('0x3e')]=_['merge'](_0x286f19['where'],{'$or':_[_0xc8da('0x34')](_0x9a6849,function(_0x3a89c8){if(_0x3a89c8[_0xc8da('0x31')]!==_0xc8da('0x41')){var _0x1b8dfd={};_0x1b8dfd[_0x3a89c8['name']]={'$like':'%'+_0x254091[_0xc8da('0x35')]['filter']+'%'};return _0x1b8dfd;}})});}_0x286f19=_[_0xc8da('0x42')]({},_0x286f19,_0x254091['options']);var _0x5347df={'where':_0x286f19[_0xc8da('0x3e')]};return db[_0xc8da('0x2f')]['count'](_0x5347df)[_0xc8da('0x26')](function(_0x110da4){_0x51d93d['count']=_0x110da4;if(_0x254091[_0xc8da('0x35')][_0xc8da('0x43')]){_0x286f19['include']=[{'all':!![]}];}return db[_0xc8da('0x2f')][_0xc8da('0x44')](_0x286f19);})[_0xc8da('0x26')](function(_0x531591){_0x51d93d[_0xc8da('0x45')]=_0x531591;return _0x51d93d;})['then'](respondWithFilteredResult(_0x563434,_0x286f19))['catch'](handleError(_0x563434,null));};exports[_0xc8da('0x46')]=function(_0x5d8b1,_0x319ac3){var _0x3ee317={'raw':!![],'where':{'id':_0x5d8b1['params']['id']}},_0x8e68de={};_0x8e68de['model']=_[_0xc8da('0x36')](db[_0xc8da('0x2f')][_0xc8da('0x47')]);_0x8e68de[_0xc8da('0x35')]=_[_0xc8da('0x36')](_0x5d8b1[_0xc8da('0x35')]);_0x8e68de['filters']=_[_0xc8da('0x38')](_0x8e68de[_0xc8da('0x33')],_0x8e68de['query']);_0x3ee317[_0xc8da('0x3a')]=_[_0xc8da('0x38')](_0x8e68de['model'],qs[_0xc8da('0x39')](_0x5d8b1[_0xc8da('0x35')][_0xc8da('0x39')]));_0x3ee317[_0xc8da('0x3a')]=_0x3ee317[_0xc8da('0x3a')][_0xc8da('0x3b')]?_0x3ee317['attributes']:_0x8e68de[_0xc8da('0x33')];if(_0x5d8b1['query'][_0xc8da('0x43')]){_0x3ee317[_0xc8da('0x48')]=[{'all':!![]}];}_0x3ee317=_[_0xc8da('0x42')]({},_0x3ee317,_0x5d8b1[_0xc8da('0x49')]);return db[_0xc8da('0x2f')]['find'](_0x3ee317)[_0xc8da('0x26')](handleEntityNotFound(_0x319ac3,null))[_0xc8da('0x26')](respondWithResult(_0x319ac3,null))[_0xc8da('0x4a')](handleError(_0x319ac3,null));};exports[_0xc8da('0x4b')]=function(_0x4429f0,_0x349cb3){return db['Interval'][_0xc8da('0x4b')](_0x4429f0[_0xc8da('0x4c')],{})[_0xc8da('0x26')](function(_0x119653){var _0x202225=_0x4429f0['user'][_0xc8da('0x27')]({'plain':!![]});if(!_0x202225)throw new Error(_0xc8da('0x4d'));if(_0x202225[_0xc8da('0x4e')]===_0xc8da('0x4f')){var _0x1ab6ce=_0x119653[_0xc8da('0x27')]({'plain':!![]});var _0x5f06f3=_0xc8da('0x28');return db[_0xc8da('0x50')][_0xc8da('0x51')]({'where':{'name':_0x5f06f3,'userProfileId':_0x202225['userProfileId']},'raw':!![]})['then'](function(_0x5f02e5){if(_0x5f02e5&&_0x5f02e5[_0xc8da('0x52')]===0x0){return db['UserProfileResource']['create']({'name':_0x1ab6ce[_0xc8da('0x2c')],'resourceId':_0x1ab6ce['id'],'type':_0x5f02e5[_0xc8da('0x2c')],'sectionId':_0x5f02e5['id']},{})[_0xc8da('0x26')](function(){return _0x119653;});}else{return _0x119653;}})[_0xc8da('0x4a')](function(_0x443cb8){logger[_0xc8da('0x2b')](_0xc8da('0x53'),_0x443cb8);throw _0x443cb8;});}return _0x119653;})[_0xc8da('0x26')](respondWithResult(_0x349cb3,0xc9))[_0xc8da('0x4a')](handleError(_0x349cb3,null));};exports['update']=function(_0x1beb11,_0x2d8ebe){if(_0x1beb11[_0xc8da('0x4c')]['id']){delete _0x1beb11[_0xc8da('0x4c')]['id'];}return db['Interval'][_0xc8da('0x51')]({'where':{'id':_0x1beb11[_0xc8da('0x54')]['id']}})['then'](handleEntityNotFound(_0x2d8ebe,null))[_0xc8da('0x26')](saveUpdates(_0x1beb11['body'],null))['then'](respondWithResult(_0x2d8ebe,null))[_0xc8da('0x4a')](handleError(_0x2d8ebe,null));};exports[_0xc8da('0x2a')]=function(_0x16f9f9,_0x3b1232){return db[_0xc8da('0x2f')][_0xc8da('0x51')]({'where':{'id':_0x16f9f9['params']['id']}})[_0xc8da('0x26')](handleEntityNotFound(_0x3b1232,null))['then'](removeEntity(_0x3b1232,null))[_0xc8da('0x4a')](handleError(_0x3b1232,null));};exports[_0xc8da('0x55')]=function(_0x4e0e60,_0x34ce49,_0x59b18c){if(_0x4e0e60[_0xc8da('0x4c')]['id']){delete _0x4e0e60[_0xc8da('0x4c')]['id'];}return db[_0xc8da('0x2f')][_0xc8da('0x51')]({'where':{'id':_0x4e0e60['params']['id']}})[_0xc8da('0x26')](handleEntityNotFound(_0x34ce49,null))['then'](function(_0x213e7d){if(_0x213e7d){_0x4e0e60[_0xc8da('0x4c')][_0xc8da('0x56')]=_0x213e7d['id'];return db[_0xc8da('0x2f')][_0xc8da('0x4b')](_0x4e0e60['body']);}})['then'](respondWithResult(_0x34ce49,null))['catch'](handleError(_0x34ce49,null));};exports[_0xc8da('0x57')]=function(_0x470f0f,_0x151936,_0x100466){var _0x57a70a={};var _0x16f4cc={};var _0x5e5a05;var _0x1d495d;return db[_0xc8da('0x2f')][_0xc8da('0x58')]({'where':{'id':_0x470f0f[_0xc8da('0x54')]['id']}})[_0xc8da('0x26')](handleEntityNotFound(_0x151936,null))['then'](function(_0x1bb402){if(_0x1bb402){_0x5e5a05=_0x1bb402;_0x16f4cc['model']=_[_0xc8da('0x36')](db['Interval']['rawAttributes']);_0x16f4cc[_0xc8da('0x35')]=_[_0xc8da('0x36')](_0x470f0f[_0xc8da('0x35')]);_0x16f4cc[_0xc8da('0x37')]=_[_0xc8da('0x38')](_0x16f4cc[_0xc8da('0x33')],_0x16f4cc['query']);_0x57a70a[_0xc8da('0x3a')]=_[_0xc8da('0x38')](_0x16f4cc['model'],qs[_0xc8da('0x39')](_0x470f0f[_0xc8da('0x35')][_0xc8da('0x39')]));_0x57a70a[_0xc8da('0x3a')]=_0x57a70a['attributes'][_0xc8da('0x3b')]?_0x57a70a['attributes']:_0x16f4cc[_0xc8da('0x33')];_0x57a70a[_0xc8da('0x59')]=qs[_0xc8da('0x3d')](_0x470f0f[_0xc8da('0x35')][_0xc8da('0x3d')]);_0x57a70a[_0xc8da('0x3e')]=qs[_0xc8da('0x37')](_[_0xc8da('0x3f')](_0x470f0f[_0xc8da('0x35')],_0x16f4cc[_0xc8da('0x37')]));if(_0x470f0f[_0xc8da('0x35')][_0xc8da('0x40')]){_0x57a70a[_0xc8da('0x3e')]=_['merge'](_0x57a70a[_0xc8da('0x3e')],{'$or':_[_0xc8da('0x34')](_0x57a70a[_0xc8da('0x3a')],function(_0x31a60d){var _0x31e715={};_0x31e715[_0x31a60d]={'$like':'%'+_0x470f0f['query'][_0xc8da('0x40')]+'%'};return _0x31e715;})});}_0x57a70a=_[_0xc8da('0x42')]({},_0x57a70a,_0x470f0f[_0xc8da('0x49')]);return _0x5e5a05[_0xc8da('0x57')](_0x57a70a);}})[_0xc8da('0x26')](function(_0x53cb69){if(_0x53cb69){_0x1d495d=_0x53cb69['length'];if(!_0x470f0f[_0xc8da('0x35')][_0xc8da('0x5a')]('nolimit')){_0x57a70a['limit']=qs[_0xc8da('0x21')](_0x470f0f[_0xc8da('0x35')][_0xc8da('0x21')]);_0x57a70a['offset']=qs[_0xc8da('0x1e')](_0x470f0f[_0xc8da('0x35')][_0xc8da('0x1e')]);}return _0x5e5a05[_0xc8da('0x57')](_0x57a70a);}})[_0xc8da('0x26')](function(_0x40a3a4){if(_0x40a3a4){return _0x40a3a4?{'count':_0x1d495d,'rows':_0x40a3a4}:null;}})[_0xc8da('0x26')](respondWithResult(_0x151936,null))[_0xc8da('0x4a')](handleError(_0x151936,null));};exports['addIntervals']=function(_0x4631a7,_0x5cee8e,_0x33f695){return db['Interval'][_0xc8da('0x58')]({'where':{'id':_0x4631a7[_0xc8da('0x54')]['id']}})[_0xc8da('0x26')](handleEntityNotFound(_0x5cee8e,null))['then'](function(_0x563ff6){if(_0x563ff6){return db[_0xc8da('0x5b')][_0xc8da('0x5c')](function(_0xe42c75){return db[_0xc8da('0x2f')]['destroy']({'where':{'IntervalId':_0x4631a7['params']['id']},'transaction':_0xe42c75})['then'](function(_0x503c38){var _0x5207c0=_[_0xc8da('0x34')](_0x4631a7['body'],function(_0x36687a){delete _0x36687a['id'];_0x36687a[_0xc8da('0x56')]=_0x4631a7['params']['id'];return _0x36687a;});return db[_0xc8da('0x2f')][_0xc8da('0x5d')](_0x5207c0,{'transaction':_0xe42c75});});})[_0xc8da('0x26')](function(){return db[_0xc8da('0x2f')][_0xc8da('0x44')]({'where':{'IntervalId':_0x4631a7[_0xc8da('0x54')]['id']}});});}})['then'](respondWithResult(_0x5cee8e,null))[_0xc8da('0x4a')](handleError(_0x5cee8e,null));};