diff --git a/client/samples.go b/client/samples.go index 84659bd..1b4d51d 100644 --- a/client/samples.go +++ b/client/samples.go @@ -27,7 +27,16 @@ func (c Client) DeleteVoiceSample(ctx context.Context, voiceID, sampleID string) res, err := client.Do(req) switch res.StatusCode { + case 401: + return false, ErrUnauthorized + case 200: + if err != nil { + return false, err + } + return true, nil case 422: + fallthrough + default: ve := types.ValidationError{} defer res.Body.Close() jerr := json.NewDecoder(res.Body).Decode(&ve) @@ -37,15 +46,6 @@ func (c Client) DeleteVoiceSample(ctx context.Context, voiceID, sampleID string) err = errors.Join(err, ve) } return false, err - case 401: - return false, ErrUnauthorized - case 200: - if err != nil { - return false, err - } - return true, nil - default: - return false, errors.Join(err, ErrUnspecified) } } @@ -62,16 +62,6 @@ func (c Client) DownloadVoiceSampleWriter(ctx context.Context, w io.Writer, voic res, err := client.Do(req) switch res.StatusCode { - case 422: - ve := types.ValidationError{} - defer res.Body.Close() - jerr := json.NewDecoder(res.Body).Decode(&ve) - if jerr != nil { - err = errors.Join(err, jerr) - } else { - err = errors.Join(err, ve) - } - return err case 401: return ErrUnauthorized case 200: @@ -81,8 +71,18 @@ func (c Client) DownloadVoiceSampleWriter(ctx context.Context, w io.Writer, voic defer res.Body.Close() io.Copy(w, res.Body) return nil + case 422: + fallthrough default: - return errors.Join(err, ErrUnspecified) + ve := types.ValidationError{} + defer res.Body.Close() + jerr := json.NewDecoder(res.Body).Decode(&ve) + if jerr != nil { + err = errors.Join(err, jerr) + } else { + err = errors.Join(err, ve) + } + return err } } @@ -99,16 +99,6 @@ func (c Client) DownloadVoiceSample(ctx context.Context, voiceID, sampleID strin res, err := client.Do(req) switch res.StatusCode { - case 422: - ve := types.ValidationError{} - defer res.Body.Close() - jerr := json.NewDecoder(res.Body).Decode(&ve) - if jerr != nil { - err = errors.Join(err, jerr) - } else { - err = errors.Join(err, ve) - } - return []byte{}, err case 401: return []byte{}, ErrUnauthorized case 200: @@ -121,7 +111,17 @@ func (c Client) DownloadVoiceSample(ctx context.Context, voiceID, sampleID strin defer res.Body.Close() io.Copy(w, res.Body) return b.Bytes(), nil + case 422: + fallthrough default: - return []byte{}, errors.Join(err, ErrUnspecified) + ve := types.ValidationError{} + defer res.Body.Close() + jerr := json.NewDecoder(res.Body).Decode(&ve) + if jerr != nil { + err = errors.Join(err, jerr) + } else { + err = errors.Join(err, ve) + } + return []byte{}, err } }