/
builder.go
79 lines (67 loc) · 1.32 KB
/
builder.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package reguerr
type Builder struct {
err *ReguError
}
func New(code, format string) *Builder {
return &Builder{
err: &ReguError{
code: code,
format: format,
level: DefaultErrorLevel,
statusCode: DefaultStatusCode,
},
}
}
func (b *Builder) Label(index int, name string, goType interface{}) *Builder {
// ignore because this func is for analysis
return b
}
func (b *Builder) DisableError() *Builder {
// ignore because this func is for analysis
return b
}
func (b *Builder) Trace() *Builder {
return &Builder{
err: b.err.withLevel(Trace),
}
}
func (b *Builder) Debug() *Builder {
return &Builder{
err: b.err.withLevel(Debug),
}
}
func (b *Builder) Info() *Builder {
return &Builder{
b.err.withLevel(Info),
}
}
func (b *Builder) Warn() *Builder {
return &Builder{
b.err.withLevel(Warn),
}
}
func (b *Builder) Error() *Builder {
return &Builder{
b.err.withLevel(Error),
}
}
func (b *Builder) Fatal() *Builder {
return &Builder{
b.err.withLevel(Fatal),
}
}
func (b *Builder) WithStatusCode(statusCode int) *Builder {
return &Builder{
err: &ReguError{
code: b.err.code,
level: b.err.level,
statusCode: statusCode,
format: b.err.format,
err: b.err.err,
args: b.err.args,
},
}
}
func (b *Builder) Build() *ReguError {
return b.err
}