summaryrefslogtreecommitdiff
path: root/internal/server/api.go
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-10-19 16:51:48 +0200
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-10-19 17:05:59 +0200
commit7260aa0cd70195a4679ca3c94204d9e618f947f2 (patch)
tree9321f5f3d21b06d1ab6dd50420879bc5ea41f044 /internal/server/api.go
parentf1a265190d8fd862bfff680fd0937a7f99759955 (diff)
Refactor: Make errors use the parent's error level
- All wrapped errors have to be created with types.NewWrappedError to inherit the error level from the parent - Or types.NewWrappedErrorLevel can be used which means a custom error level is given. For example this is done with cancelling OAuth - Client public errors are forwarded with handleError that also logs it with the error's level
Diffstat (limited to 'internal/server/api.go')
-rw-r--r--internal/server/api.go36
1 files changed, 18 insertions, 18 deletions
diff --git a/internal/server/api.go b/internal/server/api.go
index 05d2528..be7281c 100644
--- a/internal/server/api.go
+++ b/internal/server/api.go
@@ -17,21 +17,21 @@ func APIGetEndpoints(baseURL string) (*ServerEndpoints, error) {
errorMessage := "failed getting server endpoints"
url, urlErr := url.Parse(baseURL)
if urlErr != nil {
- return nil, &types.WrappedErrorMessage{Message: errorMessage, Err: urlErr}
+ return nil, types.NewWrappedError(errorMessage, urlErr)
}
url.Path = path.Join(url.Path, WellKnownPath)
_, body, bodyErr := httpw.HTTPGet(url.String())
if bodyErr != nil {
- return nil, &types.WrappedErrorMessage{Message: errorMessage, Err: bodyErr}
+ return nil, types.NewWrappedError(errorMessage, bodyErr)
}
endpoints := &ServerEndpoints{}
jsonErr := json.Unmarshal(body, endpoints)
if jsonErr != nil {
- return nil, &types.WrappedErrorMessage{Message: errorMessage, Err: jsonErr}
+ return nil, types.NewWrappedError(errorMessage, jsonErr)
}
return endpoints, nil
@@ -51,20 +51,20 @@ func apiAuthorized(
base, baseErr := server.GetBase()
if baseErr != nil {
- return nil, nil, &types.WrappedErrorMessage{Message: errorMessage, Err: baseErr}
+ return nil, nil, types.NewWrappedError(errorMessage, baseErr)
}
// Join the paths
url, urlErr := url.Parse(base.Endpoints.API.V3.API)
if urlErr != nil {
- return nil, nil, &types.WrappedErrorMessage{Message: errorMessage, Err: urlErr}
+ return nil, nil, types.NewWrappedError(errorMessage, urlErr)
}
url.Path = path.Join(url.Path, endpoint)
// Make sure the tokens are valid, this will return an error if re-login is needed
oauthErr := EnsureTokens(server)
if oauthErr != nil {
- return nil, nil, &types.WrappedErrorMessage{Message: errorMessage, Err: oauthErr}
+ return nil, nil, types.NewWrappedError(errorMessage, oauthErr)
}
headerKey := "Authorization"
@@ -95,11 +95,11 @@ func apiAuthorizedRetry(
MarkTokenExpired(server)
retryHeader, retryBody, retryErr := apiAuthorized(server, method, endpoint, opts)
if retryErr != nil {
- return nil, nil, &types.WrappedErrorMessage{Message: errorMessage, Err: retryErr}
+ return nil, nil, types.NewWrappedError(errorMessage, retryErr)
}
return retryHeader, retryBody, nil
}
- return nil, nil, &types.WrappedErrorMessage{Message: errorMessage, Err: bodyErr}
+ return nil, nil, types.NewWrappedError(errorMessage, bodyErr)
}
return header, body, nil
}
@@ -108,19 +108,19 @@ func APIInfo(server Server) error {
errorMessage := "failed API /info"
_, body, bodyErr := apiAuthorizedRetry(server, http.MethodGet, "/info", nil)
if bodyErr != nil {
- return &types.WrappedErrorMessage{Message: errorMessage, Err: bodyErr}
+ return types.NewWrappedError(errorMessage, bodyErr)
}
structure := ServerProfileInfo{}
jsonErr := json.Unmarshal(body, &structure)
if jsonErr != nil {
- return &types.WrappedErrorMessage{Message: errorMessage, Err: jsonErr}
+ return types.NewWrappedError(errorMessage, jsonErr)
}
base, baseErr := server.GetBase()
if baseErr != nil {
- return &types.WrappedErrorMessage{Message: errorMessage, Err: baseErr}
+ return types.NewWrappedError(errorMessage, baseErr)
}
// Store the profiles and make sure that the current profile is not overwritten
@@ -169,17 +169,17 @@ func APIConnectWireguard(
&httpw.HTTPOptionalParams{Headers: headers, Body: urlForm},
)
if connectErr != nil {
- return "", "", time.Time{}, &types.WrappedErrorMessage{
- Message: errorMessage,
- Err: connectErr,
- }
+ return "", "", time.Time{}, types.NewWrappedError(
+ errorMessage,
+ connectErr,
+ )
}
expires := header.Get("expires")
pTime, pTimeErr := http.ParseTime(expires)
if pTimeErr != nil {
- return "", "", time.Time{}, &types.WrappedErrorMessage{Message: errorMessage, Err: pTimeErr}
+ return "", "", time.Time{}, types.NewWrappedError(errorMessage, pTimeErr)
}
contentType := header.Get("content-type")
@@ -210,13 +210,13 @@ func APIConnectOpenVPN(server Server, profile_id string, preferTCP bool) (string
&httpw.HTTPOptionalParams{Headers: headers, Body: urlForm},
)
if connectErr != nil {
- return "", time.Time{}, &types.WrappedErrorMessage{Message: errorMessage, Err: connectErr}
+ return "", time.Time{}, types.NewWrappedError(errorMessage, connectErr)
}
expires := header.Get("expires")
pTime, pTimeErr := http.ParseTime(expires)
if pTimeErr != nil {
- return "", time.Time{}, &types.WrappedErrorMessage{Message: errorMessage, Err: pTimeErr}
+ return "", time.Time{}, types.NewWrappedError(errorMessage, pTimeErr)
}
return string(connectBody), pTime, nil
}