save "create sync group" table in database
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package response
|
||||
|
||||
import "net/http"
|
||||
|
||||
type (
|
||||
Mux struct {
|
||||
Mux *http.ServeMux
|
||||
middleware []Middleware
|
||||
}
|
||||
|
||||
Middleware = func(HandlerFunc) HandlerFunc
|
||||
)
|
||||
|
||||
func NewMux(ms ...Middleware) *Mux {
|
||||
return &Mux{
|
||||
Mux: http.NewServeMux(),
|
||||
middleware: ms,
|
||||
}
|
||||
}
|
||||
|
||||
func (m *Mux) Handle(pattern string, fn HandlerFunc) {
|
||||
for _, mw := range m.middleware {
|
||||
prev := fn
|
||||
fn = mw(func(r *http.Request) (Response, error) {
|
||||
return prev(r)
|
||||
})
|
||||
}
|
||||
|
||||
m.Mux.Handle(pattern, Handler(fn))
|
||||
}
|
||||
|
||||
func (m *Mux) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
m.Mux.ServeHTTP(w, r)
|
||||
}
|
||||
@@ -48,6 +48,10 @@ func Write(w http.ResponseWriter, r *http.Request, res Response) {
|
||||
}
|
||||
|
||||
func WriteError(w http.ResponseWriter, err error) {
|
||||
http.Error(w, err.Error(), GetStatusFromError(err))
|
||||
}
|
||||
|
||||
func GetStatusFromError(err error) int {
|
||||
status := http.StatusInternalServerError
|
||||
|
||||
if e, ok := GetError(err); ok {
|
||||
@@ -56,5 +60,5 @@ func WriteError(w http.ResponseWriter, err error) {
|
||||
}
|
||||
}
|
||||
|
||||
http.Error(w, err.Error(), status)
|
||||
return status
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user