forked from mirror/gin
Moves errorMsg to errors.go
This commit is contained in:
parent
9d59fc51bc
commit
59d949d350
41
context.go
41
context.go
|
@ -5,9 +5,7 @@
|
||||||
package gin
|
package gin
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"math"
|
"math"
|
||||||
|
@ -19,45 +17,6 @@ import (
|
||||||
"github.com/julienschmidt/httprouter"
|
"github.com/julienschmidt/httprouter"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
ErrorTypeInternal = 1 << iota
|
|
||||||
ErrorTypeExternal = 1 << iota
|
|
||||||
ErrorTypeAll = 0xffffffff
|
|
||||||
)
|
|
||||||
|
|
||||||
// Used internally to collect errors that occurred during an http request.
|
|
||||||
type errorMsg struct {
|
|
||||||
Err string `json:"error"`
|
|
||||||
Type uint32 `json:"-"`
|
|
||||||
Meta interface{} `json:"meta"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type errorMsgs []errorMsg
|
|
||||||
|
|
||||||
func (a errorMsgs) ByType(typ uint32) errorMsgs {
|
|
||||||
if len(a) == 0 {
|
|
||||||
return a
|
|
||||||
}
|
|
||||||
result := make(errorMsgs, 0, len(a))
|
|
||||||
for _, msg := range a {
|
|
||||||
if msg.Type&typ > 0 {
|
|
||||||
result = append(result, msg)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a errorMsgs) String() string {
|
|
||||||
if len(a) == 0 {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
var buffer bytes.Buffer
|
|
||||||
for i, msg := range a {
|
|
||||||
text := fmt.Sprintf("Error #%02d: %s \n Meta: %v\n", (i + 1), msg.Err, msg.Meta)
|
|
||||||
buffer.WriteString(text)
|
|
||||||
}
|
|
||||||
return buffer.String()
|
|
||||||
}
|
|
||||||
const AbortIndex = math.MaxInt8 / 2
|
const AbortIndex = math.MaxInt8 / 2
|
||||||
|
|
||||||
// Context is the most important part of gin. It allows us to pass variables between middleware,
|
// Context is the most important part of gin. It allows us to pass variables between middleware,
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
// Copyright 2014 Manu Martinez-Almeida. All rights reserved.
|
||||||
|
// Use of this source code is governed by a MIT style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package gin
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"fmt"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
ErrorTypeInternal = 1 << iota
|
||||||
|
ErrorTypeExternal = 1 << iota
|
||||||
|
ErrorTypeAll = 0xffffffff
|
||||||
|
)
|
||||||
|
|
||||||
|
// Used internally to collect errors that occurred during an http request.
|
||||||
|
type errorMsg struct {
|
||||||
|
Err string `json:"error"`
|
||||||
|
Type uint32 `json:"-"`
|
||||||
|
Meta interface{} `json:"meta"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type errorMsgs []errorMsg
|
||||||
|
|
||||||
|
func (a errorMsgs) ByType(typ uint32) errorMsgs {
|
||||||
|
if len(a) == 0 {
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
result := make(errorMsgs, 0, len(a))
|
||||||
|
for _, msg := range a {
|
||||||
|
if msg.Type&typ > 0 {
|
||||||
|
result = append(result, msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a errorMsgs) String() string {
|
||||||
|
if len(a) == 0 {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
var buffer bytes.Buffer
|
||||||
|
for i, msg := range a {
|
||||||
|
text := fmt.Sprintf("Error #%02d: %s \n Meta: %v\n", (i + 1), msg.Err, msg.Meta)
|
||||||
|
buffer.WriteString(text)
|
||||||
|
}
|
||||||
|
return buffer.String()
|
||||||
|
}
|
Loading…
Reference in New Issue