initial commits
parent
ae7875d8e5
commit
9c0263cfa4
|
@ -0,0 +1,60 @@
|
||||||
|
package maymoon
|
||||||
|
|
||||||
|
import (
|
||||||
|
"sourcecode.social/reiver/go-errhttp"
|
||||||
|
|
||||||
|
"fmt"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
func serveError(responsewriter http.ResponseWriter, err error) {
|
||||||
|
|
||||||
|
if nil == responsewriter {
|
||||||
|
/////////////// RETURN
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if nil == err {
|
||||||
|
http.Error(responsewriter, "Internal Server Error\n\nMissing Error\n", http.StatusInternalServerError)
|
||||||
|
/////////////// RETURN
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var e errhttp.Error
|
||||||
|
{
|
||||||
|
var casted bool
|
||||||
|
|
||||||
|
e, casted = err.(errhttp.Error)
|
||||||
|
if !casted {
|
||||||
|
var msg []byte = []byte("Internal Server Error\n\n")
|
||||||
|
msg = append(msg, err.Error()...)
|
||||||
|
msg = append(msg, '\n')
|
||||||
|
|
||||||
|
http.Error(responsewriter, string(msg), http.StatusInternalServerError)
|
||||||
|
/////////////////////// RETURN
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var statuscode int = e.ErrHTTP()
|
||||||
|
|
||||||
|
var msg []byte
|
||||||
|
{
|
||||||
|
var statustext string = http.StatusText(statuscode)
|
||||||
|
if "" == statustext {
|
||||||
|
statustext = fmt.Sprintf("HTTP Error %d", statuscode)
|
||||||
|
}
|
||||||
|
|
||||||
|
msg = append(msg, statustext...)
|
||||||
|
}
|
||||||
|
{
|
||||||
|
var inner error = e.Unwrap()
|
||||||
|
if nil != inner {
|
||||||
|
msg = append(msg, "\n\n"...)
|
||||||
|
msg = append(msg, inner.Error()...)
|
||||||
|
msg = append(msg, '\n')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
http.Error(responsewriter, string(msg), statuscode)
|
||||||
|
}
|
Loading…
Reference in New Issue