Instrustment handlers for logging/error handling

This refactors a bit of the http handler code.
Moves error handling for handler functions to a generic handler.
This also has a side-effect of being able to propagate errors from the
provider to send the correct status code, provided the error type
matches a pre-defined interface.
This commit is contained in:
Brian Goff
2018-09-17 16:35:17 -07:00
parent 8eb6ab4bcd
commit 74f76c75d5
9 changed files with 890 additions and 33 deletions

12
vendor/github.com/cpuguy83/strongerrors/doc.go generated vendored Normal file
View File

@@ -0,0 +1,12 @@
// Package strongerrors defines a set of error interfaces that packages should use for communicating classes of errors.
// Errors that cross the package boundary should implement one (and only one) of these interfaces.
//
// Packages should not reference these interfaces directly, only implement them.
// To check if a particular error implements one of these interfaces, there are helper
// functions provided (e.g. `Is<SomeError>`) which can be used rather than asserting the interfaces directly.
// If you must assert on these interfaces, be sure to check the causal chain (`err.Cause()`).
//
// A set of helper functions are provided to take any error and turn it into a specific error class.
// This frees you from defining the same error classes all over your code. However, you can still
// implement the error classes ony our own if you desire.
package strongerrors