var router = require('express').Router(); const requestProcessor = require('../helpers/request-processor.helper.js').requestProcessor; const printError = require('../helpers/logs.helpers.js').printError; router.get('/wms/:repo*', async (req, res) => { const layer = req.query.layers || req.query.LAYERS; try { return await requestProcessor(req, res, layer, 'wms'); } catch (err) { printError(`/wms/${req.params.repo}?layers=${layer}`, err); res.status(err.status).send(err); return; } }); router.get('/wfs/:repo*', async (req, res) => { const layer = req.query.typename || req.query.TYPENAME; try { return await requestProcessor(req, res, layer, 'wfs'); } catch (err) { printError(`/wfs/${req.params.repo}?typename=${layer}`, err); res.status(err.status).send(err); return; } }); router.get('/ws/:repo/:layer*', async (req, res) => { let layer = req.params.layer; if(layer.includes('.shp')) { layer = layer.split('.shp')[0]; } try { return await requestProcessor(req, res, layer, 'ws'); } catch (err) { printError(`/ws/${req.params.repo}/${layer}`, err); res.status(err.status).send(err); return; } }); router.get('/kml/:repo*', async (req, res) => { const layer = req.query.typename || req.query.TYPENAME; try { return await requestProcessor(req, res, layer, 'kml'); } catch (err) { printError(`/kml/${req.params.repo}?typename=${layer}`, err); res.status(err.status).send(err); return; } }); router.get('/wcs/:repo*', async (req, res) => { const layer = req.query.identifiers || req.query.IDENTIFIERS || req.query.COVERAGE; try { return await requestProcessor(req, res, layer, 'wcs'); } catch (err) { printError(`/wcs/${req.params.repo}?identifiers=${layer}`, err); res.status(err.status).send(err); return; } }); router.get('/files/:repo/:layer*', async (req, res) => { const layer = req.params.layer; try { return await requestProcessor(req, res, layer, 'files', req.path); } catch (err) { printError(`/files/${req.params.repo}/${layer}`, err); res.status(err.status).send(err); return; } }); router.get('/catalogue*', async (req, res) => { try { req.app.locals.proxies.unauthenticated.web(req, res, {}); } catch (err) { printError(`/catalogue`, err); res.status(err.status).send(err); return; } }); router.get('/actes*', async (req, res) => { try { req.app.locals.proxies.unauthenticated.web(req, res, {}); } catch (err) { printError(`/actes`, err); res.status(err.status).send(err); return; } }); module.exports = router;