annotate pkg/imports/errors.go @ 2549:9bf6b767a56a

client: refactored and improved splitscreen for diagrams To make different diagrams possible, the splitscreen view needed to be decoupled from the cross profiles. Also the style has changed to make it more consistent with the rest of the app. The standard box header is now used and there are collapse and expand animations.
author Markus Kottlaender <markus@intevation.de>
date Fri, 08 Mar 2019 08:50:47 +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 }