Skip to content

Commit f4ba9fc

Browse files
committed
fix also list update function
1 parent be8fda9 commit f4ba9fc

File tree

3 files changed

+32
-15
lines changed

3 files changed

+32
-15
lines changed

internal/api/handlers/update.go

Lines changed: 31 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package handlers
1717

1818
import (
19-
"errors"
2019
"net/http"
2120
"strings"
2221

@@ -43,14 +42,19 @@ func HandleCheckUpgradable(updater *update.Manager) http.HandlerFunc {
4342

4443
pkgs, err := updater.ListUpgradablePackages(r.Context(), filterFunc)
4544
if err != nil {
46-
if errors.Is(err, update.ErrOperationAlreadyInProgress) {
47-
render.EncodeResponse(w, http.StatusConflict, models.ErrorResponse{Details: err.Error()})
45+
code := update.GetUpdateErrorCode(err)
46+
if code == update.ErrOperationAlreadyInProgress.Code {
47+
render.EncodeResponse(w, http.StatusConflict, models.ErrorResponse{
48+
Code: string(code),
49+
Details: err.Error(),
50+
})
4851
return
4952
}
50-
render.EncodeResponse(w, http.StatusBadRequest, models.ErrorResponse{Details: "Error checking for upgradable packages: " + err.Error()})
51-
return
53+
render.EncodeResponse(w, http.StatusBadRequest, models.ErrorResponse{
54+
Code: string(code),
55+
Details: err.Error(),
56+
})
5257
}
53-
5458
if len(pkgs) == 0 {
5559
render.EncodeResponse(w, http.StatusNoContent, nil)
5660
return
@@ -79,27 +83,40 @@ func HandleUpdateApply(updater *update.Manager) http.HandlerFunc {
7983

8084
pkgs, err := updater.ListUpgradablePackages(r.Context(), filterFunc)
8185
if err != nil {
82-
if errors.Is(err, update.ErrOperationAlreadyInProgress) {
83-
render.EncodeResponse(w, http.StatusConflict, models.ErrorResponse{Details: err.Error()})
86+
code := update.GetUpdateErrorCode(err)
87+
if code == update.ErrOperationAlreadyInProgress.Code {
88+
render.EncodeResponse(w, http.StatusConflict, models.ErrorResponse{
89+
Code: string(code),
90+
Details: err.Error(),
91+
})
8492
return
8593
}
8694
slog.Error("Unable to get upgradable packages", slog.String("error", err.Error()))
87-
render.EncodeResponse(w, http.StatusInternalServerError, models.ErrorResponse{Details: "Error checking for upgradable packages"})
95+
render.EncodeResponse(w, http.StatusInternalServerError, models.ErrorResponse{
96+
Code: string(code),
97+
Details: err.Error(),
98+
})
8899
return
89100
}
90-
91101
if len(pkgs) == 0 {
92-
render.EncodeResponse(w, http.StatusNoContent, models.ErrorResponse{Details: "System is up to date, no upgradable packages found"})
102+
render.EncodeResponse(w, http.StatusNoContent, nil)
93103
return
94104
}
95105

96106
err = updater.UpgradePackages(r.Context(), pkgs)
97107
if err != nil {
98-
if errors.Is(err, update.ErrOperationAlreadyInProgress) {
99-
render.EncodeResponse(w, http.StatusConflict, models.ErrorResponse{Details: err.Error()})
108+
code := update.GetUpdateErrorCode(err)
109+
if code == update.ErrOperationAlreadyInProgress.Code {
110+
render.EncodeResponse(w, http.StatusConflict, models.ErrorResponse{
111+
Code: string(code),
112+
Details: err.Error(),
113+
})
100114
return
101115
}
102-
render.EncodeResponse(w, http.StatusInternalServerError, models.ErrorResponse{Details: "Error upgrading packages"})
116+
render.EncodeResponse(w, http.StatusInternalServerError, models.ErrorResponse{
117+
Code: string(code),
118+
Details: err.Error(),
119+
})
103120
return
104121
}
105122

internal/api/models/errors.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,6 @@
1616
package models
1717

1818
type ErrorResponse struct {
19+
Code string `json:"code,omitempty"`
1920
Details string `json:"details"`
2021
}

internal/update/errors.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ func (e *UpdateError) Unwrap() error {
3838

3939
func NewUnkownError(err error) *UpdateError {
4040
return &UpdateError{
41-
Code: "UNKNOWN_ERROR",
4241
Details: err.Error(),
4342
err: err,
4443
}

0 commit comments

Comments
 (0)