annotate pkg/imports/errors.go @ 2624:9dbaf69c7a66

Improve geoserver config to better calculate bounding boxes * Disable the use of estimated extents for the postgis storage configuration for geoserver, which is set via the gemma middleware. This way we are able to get better bounding boxes for many layers where the postgis function `ST_EstimatedExtent()` would be far off.
author Bernhard Reiter <bernhard@intevation.de>
date Wed, 13 Mar 2019 16:18:39 +0100
parents 6b34d0fb4498
children 1cb6676d1510
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2548
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1 // This is Free Software under GNU Affero General Public License v >= 3.0
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
2 // without warranty, see README.md and license for details.
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
3 //
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
4 // SPDX-License-Identifier: AGPL-3.0-or-later
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
5 // License-Filename: LICENSES/AGPL-3.0.txt
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
6 //
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
7 // Copyright (C) 2019 by via donau
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
8 // – Österreichische Wasserstraßen-Gesellschaft mbH
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
9 // Software engineering by Intevation GmbH
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
10 //
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
11 // Author(s):
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
12 // * Tom Gottfried <tom.gottfried@intevation.de>
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
13
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
14 package imports
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
15
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
16 import (
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
17 "strings"
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
18
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
19 "github.com/jackc/pgx"
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
20 )
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
21
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
22 func handleError(err error) error {
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
23 switch e := err.(type) {
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
24 case pgx.PgError:
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
25 return dbError(e)
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
26 }
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
27 return err
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
28 }
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
29
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
30 // Handle PostgreSQL error codes
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
31 const (
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
32 noDataFound = "P0002"
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
33 )
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
34
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
35 type dbError pgx.PgError
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
36
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
37 func (err dbError) Error() string {
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
38 switch err.Code {
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
39 case noDataFound:
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
40 // Most recent line from stacktrace contains name of failed function
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
41 recent := strings.SplitN(err.Where, "\n", 1)[0]
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
42 switch {
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
43 case strings.Contains(recent, "isrsrange_points"):
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
44 return "No distance mark found for at least one given ISRS Location Code"
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
45 case strings.Contains(recent, "isrsrange_axis"):
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
46 return "No contiguous axis found between given ISRS Location Codes"
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
47 }
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
48 }
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
49 return "Unexpected database error: " + err.Message
6b34d0fb4498 Improve user facing error messages for stretch area generation
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
50 }