/
errors.go
52 lines (41 loc) · 1.11 KB
/
errors.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package candishared
import (
"time"
)
// GraphQLErrorResolver graphql error with extensions
type GraphQLErrorResolver interface {
Error() string
Extensions() map[string]interface{}
}
type resolveErrorImpl struct {
message string
extensions map[string]interface{}
}
func (r *resolveErrorImpl) Error() string {
return r.message
}
func (r *resolveErrorImpl) Extensions() map[string]interface{} {
return r.extensions
}
// NewGraphQLErrorResolver constructor
func NewGraphQLErrorResolver(errMesage string, extensions map[string]interface{}) GraphQLErrorResolver {
return &resolveErrorImpl{
message: errMesage, extensions: extensions,
}
}
// ErrorRetrier task queue worker for retry error with retry count and delay between retry
type ErrorRetrier struct {
// Delay run retry, skip retry if delay <= 0
Delay time.Duration
NewRetry int
// Message for error value
Message string
// NewArgsPayload overide args message payload
NewArgsPayload []byte
StackTrace string
NewRetryIntervalFunc func(retries int) time.Duration
}
// Error implement error
func (e *ErrorRetrier) Error() string {
return e.Message
}