1616package handlers
1717
1818import (
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
0 commit comments