Skip to content
Snippets Groups Projects
download.routes.js 2.61 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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) => {
    
    
    Damien DESPRES's avatar
    Damien DESPRES committed
      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;
      }
    });
    
    
    Damien DESPRES's avatar
    Damien DESPRES committed
    module.exports = router;