view pkg/middleware/notfound.go @ 4359:057787583b12

client: add showNumbers option to AvailableFairwayDepthLNWL * Add code similiar to AvailableFairwayDepth.vue, but slightly different because the bars are drawn differently. Each draw function uses its own method to select the svg elements to modify.
author Bernhard Reiter <bernhard@intevation.de>
date Mon, 09 Sep 2019 17:03:27 +0200
parents 6f9d00c8cc38
children
line wrap: on
line source

// This is Free Software under GNU Affero General Public License v >= 3.0
// without warranty, see README.md and license for details.
//
// SPDX-License-Identifier: AGPL-3.0-or-later
// License-Filename: LICENSES/AGPL-3.0.txt
//
// Copyright (C) 2018 by via donau
//   – Österreichische Wasserstraßen-Gesellschaft mbH
// Software engineering by Intevation GmbH
//
// Author(s):
//  * Sascha L. Teichmann <sascha.teichmann@intevation.de>

package middleware

import (
	"errors"
	"net/http"
)

// ErrNotFound should be as the argument to panic if the NotFound should
// report back a http.StatusNotFound.
var ErrNotFound = errors.New("not found")

// NotFound creates an http.Handler which survives panic(ErrNotFound) and
// reports http.StatusNotFound in these cases back to the calling handler.
func NotFound(next http.Handler) http.Handler {
	return http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
		defer func() {
			if p := recover(); p != nil {
				if p == ErrNotFound {
					http.NotFound(rw, req)
				} else {
					panic(p)
				}
			}
		}()
		next.ServeHTTP(rw, req)
	})
}