Skip to content

Commit

Permalink
Disable gocritic and re-enable wastedassign
Browse files Browse the repository at this point in the history
- gogritic is very slow (golangci-lint v1.52.0)
- wastedassign received support for generics: golangci/golangci-lint#3689
- Refactor httpclient.Client.ResponseToBatch to fix wastedassign
warning
  • Loading branch information
mihaitodor committed Mar 19, 2023
1 parent 0dd54f6 commit 310bf15
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 18 deletions.
15 changes: 7 additions & 8 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,21 @@ linters-settings:
linters:
disable-all: true
enable:
# Default linters reported by `golangci-lint help linters` in v1.41.1
# Disabled for Go 1.18
- gosimple
- staticcheck
- unused
# Default linters reported by `golangci-lint help linters` in v1.52.0
- errcheck
- gosimple
- govet
- ineffassign
- staticcheck
- typecheck
- unused
# Extra linters:
# Disabled for Go 1.18
# - wastedassign
- wastedassign
- stylecheck
- gofmt
- goimports
- gocritic
# gocritic is very slow (golangci-lint v1.52.0)
# - gocritic
# - revive
- unconvert
- durationcheck
Expand Down
20 changes: 10 additions & 10 deletions internal/httpclient/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -225,8 +225,8 @@ func (h *Client) waitForAccess(ctx context.Context) bool {
}

// ResponseToBatch attempts to parse an HTTP response into a 2D slice of bytes.
func (h *Client) ResponseToBatch(res *http.Response) (resMsg message.Batch, err error) {
resMsg = message.QuickBatch(nil)
func (h *Client) ResponseToBatch(res *http.Response) (message.Batch, error) {
resMsg := message.QuickBatch(nil)

annotatePart := func(p *message.Part) {
p.MetaSetMut("http_status_code", res.StatusCode)
Expand All @@ -244,25 +244,25 @@ func (h *Client) ResponseToBatch(res *http.Response) (resMsg message.Batch, err
nextPart := message.NewPart(nil)
annotatePart(nextPart)
resMsg = append(resMsg, nextPart)
return
return resMsg, nil
}
defer res.Body.Close()

var mediaType string
var params map[string]string
var err error
if contentType := res.Header.Get("Content-Type"); len(contentType) > 0 {
if mediaType, params, err = mime.ParseMediaType(contentType); err != nil {
h.log.Warnf("Failed to parse media type from Content-Type header: %v\n", err)
}
err = nil
}

var buffer bytes.Buffer
if !strings.HasPrefix(mediaType, "multipart/") {
var bytesRead int64
if bytesRead, err = buffer.ReadFrom(res.Body); err != nil {
h.log.Errorf("Failed to read response: %v\n", err)
return
return resMsg, err
}

nextPart := message.NewPart(nil)
Expand All @@ -272,7 +272,7 @@ func (h *Client) ResponseToBatch(res *http.Response) (resMsg message.Batch, err

annotatePart(nextPart)
resMsg = append(resMsg, nextPart)
return
return resMsg, nil
}

mr := multipart.NewReader(res.Body, params["boundary"])
Expand All @@ -281,16 +281,15 @@ func (h *Client) ResponseToBatch(res *http.Response) (resMsg message.Batch, err
var p *multipart.Part
if p, err = mr.NextPart(); err != nil {
if err == io.EOF {
err = nil
break
}
return
return resMsg, err
}

var bytesRead int64
if bytesRead, err = buffer.ReadFrom(p); err != nil {
h.log.Errorf("Failed to read response: %v\n", err)
return
return resMsg, err
}

nextPart := message.NewPart(buffer.Bytes()[bufferIndex : bufferIndex+bytesRead])
Expand All @@ -299,7 +298,8 @@ func (h *Client) ResponseToBatch(res *http.Response) (resMsg message.Batch, err
annotatePart(nextPart)
resMsg = append(resMsg, nextPart)
}
return

return resMsg, nil
}

type retryStrategy int
Expand Down

0 comments on commit 310bf15

Please sign in to comment.