Skip to content
Snippets Groups Projects
download.routes.js 2.59 KiB
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;

  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;