This commit is contained in:
1 parent
64f7eed9fd
commit
4c01dc4ea2
19 files changed
+4
-4
No files matched your search
@@ -0,0 +1,40 @@
|
||||
package questrade
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type QuestradeError struct {
|
||||
Code int `json:"code"`
|
||||
StatusCode int
|
||||
Message string `json:"message"`
|
||||
Endpoint string
|
||||
}
|
||||
|
||||
func newQuestradeError(res *http.Response, body []byte) QuestradeError {
|
||||
// Unmarshall the error text
|
||||
var e QuestradeError
|
||||
err := json.Unmarshal(body, &e)
|
||||
if err != nil {
|
||||
e.Code = -999
|
||||
e.Message = string(body)
|
||||
}
|
||||
|
||||
e.StatusCode = res.StatusCode
|
||||
e.Endpoint = res.Request.URL.String()
|
||||
return e
|
||||
}
|
||||
|
||||
func (q QuestradeError) Error() string {
|
||||
return fmt.Sprintf("\nQuestradeError:\n"+
|
||||
"\tStatus code: HTTP %d\n"+
|
||||
"\tEndpoint: %s\n"+
|
||||
"\tError code: %d\n"+
|
||||
"\tMessage: %s\n",
|
||||
q.StatusCode,
|
||||
q.Endpoint,
|
||||
q.Code,
|
||||
q.Message)
|
||||
}
|
||||
Reference in new issue
Block a user