From 8e4520c2923be3e756043e899afa079ad47c8abb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Lipinsk=C3=BD?= <6032558+Mr-Tao@users.noreply.github.com> Date: Sun, 30 Aug 2026 15:51:51 +0200 Subject: [PATCH] fix(stereo): simplify cleanup classification --- .../soundtouchweb/handler_stereopair.go | 2 ++ pkg/stereopair/marge_cleanup.go | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/pkg/service/soundtouchweb/handler_stereopair.go b/pkg/service/soundtouchweb/handler_stereopair.go index c852139b..4db82b51 100644 --- a/pkg/service/soundtouchweb/handler_stereopair.go +++ b/pkg/service/soundtouchweb/handler_stereopair.go @@ -385,9 +385,11 @@ func stereoPairHTTPStatus(result stereopair.Result) int { if resultHasStereoPairError(result, stereopair.ErrInvalidRequest) { return http.StatusBadRequest } + if resultHasStereoPairError(result, stereopair.ErrConflict) { return http.StatusConflict } + if result.Status == stereopair.StatusDegraded { return http.StatusBadGateway } diff --git a/pkg/stereopair/marge_cleanup.go b/pkg/stereopair/marge_cleanup.go index 53107c70..b94bb67d 100644 --- a/pkg/stereopair/marge_cleanup.go +++ b/pkg/stereopair/marge_cleanup.go @@ -73,16 +73,26 @@ func DeleteMargeGroupGeneration(httpClient *http.Client, ref GenerationRef) erro return err } - if response.StatusCode == http.StatusInternalServerError && margeWrappedGroupNotFound(body, ref) { + return handleMargeGenerationCleanupFailure(httpClient, ref, response.StatusCode, body) +} + +func handleMargeGenerationCleanupFailure( + httpClient *http.Client, + ref GenerationRef, + statusCode int, + body []byte, +) error { + if statusCode == http.StatusInternalServerError && margeWrappedGroupNotFound(body, ref) { return verifyMargeGroupGenerationDeleted(httpClient, ref) } - if response.StatusCode == http.StatusConflict { + + if statusCode == http.StatusConflict { return fmt.Errorf("%w: delete Marge group generation: HTTP %d: %s", - ErrConflict, response.StatusCode, strings.TrimSpace(string(body))) + ErrConflict, statusCode, strings.TrimSpace(string(body))) } return fmt.Errorf("delete Marge group generation: HTTP %d: %s", - response.StatusCode, strings.TrimSpace(string(body))) + statusCode, strings.TrimSpace(string(body))) } func readMargeGenerationCleanupResponse(response *http.Response) ([]byte, error) {