forked from DiFronzo/blockchair
-
Notifications
You must be signed in to change notification settings - Fork 0
/
error.go
54 lines (45 loc) · 1.26 KB
/
error.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
package blockchair
import "net/http"
// Error data structure describing the error.
type Error struct {
// Hash wrong hash.
Hash *string
// MainErr standard error msg.
MainErr error
// ExecErr error that occurred during the operation.
ExecErr error
// Response http response.
Response *http.Response
}
// Error compatibility with error interface.
func (e Error) Error() string {
return e.MainErr.Error()
}
// NewError creates a new Error instance.
func NewError(errorMain error, errorExec error, response *http.Response, hash *string) *Error {
if errorMain == nil {
return nil
}
return &Error{
MainErr: errorMain,
ExecErr: errorExec,
Response: response,
Hash: hash,
}
}
// err1 build error helper.
func (c *Client) err1(errorMain error) error {
return NewError(errorMain, nil, nil, nil)
}
// err2 build error helper.
func (c *Client) err2(errorMain error, errorExec error) error {
return NewError(errorMain, errorExec, nil, nil)
}
// err3 build error helper.
func (c *Client) err3(errorMain error, errorExec error, response *http.Response) error {
return NewError(errorMain, errorExec, response, nil)
}
// err4 build error helper.
func (c *Client) err4(errorMain error, response string) error {
return NewError(errorMain, nil, nil, &response)
}