-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy patherror.go
74 lines (64 loc) · 2.39 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*
* StatusCake API
*
* Copyright (c) 2023
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to
* deal in the Software without restriction, including without limitation the
* rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*
* API version: 1.2.0
* Contact: [email protected]
*/
// Code generated by OpenAPI Generator (https://openapi-generator.tech); DO NOT EDIT.
package statuscake
// APIError represents an error returned from the API. This type abstracts the
// different payloads that can be returned from the API in response to an error
// which would otherwise add unnecessary compexity to the interface of this
// package.
type APIError struct {
Status int
Message string `json:"message,omitempty"`
Errors map[string][]string `json:"errors,omitempty"`
// Wrap the parent error in case it is of any use.
parent error
}
// NewAPIError returns a structured error type from an API response.
func NewAPIError(message string, parent error) APIError {
return APIError{
Message: message,
parent: parent,
}
}
func (e APIError) Error() string {
if e.parent != nil {
return e.parent.Error() + ": " + e.Message
}
return e.Message
}
func (e APIError) Unwrap() error {
return e.parent
}
// Errors returns the map of error messages contained in an APIError. If the
// error passed into the function cannot be asserted to be of type APIError
// then an empty map is returned.
func Errors(err error) map[string][]string {
if e, ok := err.(APIError); ok {
return e.Errors
}
return map[string][]string{}
}