29 lines
425 B
Go
29 lines
425 B
Go
|
package logicErr
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"net/http"
|
||
|
)
|
||
|
|
||
|
type Err struct {
|
||
|
error
|
||
|
Msg string
|
||
|
ApiMsg string
|
||
|
Log bool
|
||
|
HttpCode int
|
||
|
}
|
||
|
|
||
|
func (e *Err) Error() string {
|
||
|
return e.Msg
|
||
|
}
|
||
|
|
||
|
func HandleHttp(ctx context.Context, w http.ResponseWriter, r *http.Request, err *Err) {
|
||
|
if err.ApiMsg == "" {
|
||
|
err.ApiMsg = err.Error()
|
||
|
}
|
||
|
if err.Log {
|
||
|
DefaultHttpErrLogger(err, r)
|
||
|
}
|
||
|
http.Error(w, err.ApiMsg, err.HttpCode)
|
||
|
}
|