• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mendersoftware / mender-server / 1841089804

28 May 2025 02:00PM UTC coverage: 66.653% (+0.8%) from 65.861%
1841089804

Pull #688

gitlab-ci

alfrunes
Merge branch 'QA-887' into 'main'
Pull Request #688: QA-887: Migrate inventory acceptance tests to OAS genertaed clients

29840 of 44769 relevant lines covered (66.65%)

1.44 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

46.67
/backend/pkg/contenttype/middleware.go
1
package contenttype
2

3
import (
4
        "mime"
5
        "net/http"
6
        "slices"
7

8
        "github.com/gin-gonic/gin"
9
        "github.com/pkg/errors"
10

11
        "github.com/mendersoftware/mender-server/pkg/rest.utils"
12
)
13

14
func CheckJSON() gin.HandlerFunc {
2✔
15
        return Middleware("application/json")
2✔
16
}
2✔
17

18
func Middleware(contentTypes ...string) gin.HandlerFunc {
2✔
19
        if len(contentTypes) == 0 {
2✔
20
                panic("contenttype.Middleware initialized with no parameters")
×
21
        }
22

23
        errMsg := "Bad Content-Type, expected "
2✔
24
        for i, ctype := range contentTypes {
4✔
25
                if i > 0 {
2✔
26
                        errMsg += ", "
×
27
                }
×
28
                errMsg += "'" + ctype + "'"
2✔
29
        }
30

31
        return func(c *gin.Context) {
4✔
32
                if c.Request.ContentLength > 0 {
4✔
33
                        contentType, _, err := mime.ParseMediaType(c.GetHeader("Content-Type"))
2✔
34
                        if err != nil {
2✔
35
                                rest.RenderError(c,
×
36
                                        http.StatusBadRequest,
×
37
                                        errors.WithMessage(err, "Invalid value for Content-Type header"),
×
38
                                )
×
39
                                c.Abort()
×
40
                                return
×
41
                        }
×
42

43
                        if !slices.Contains(contentTypes, contentType) {
2✔
44
                                rest.RenderError(c,
×
45
                                        http.StatusUnsupportedMediaType,
×
46
                                        errors.New(errMsg),
×
47
                                )
×
48
                                c.Abort()
×
49
                        }
×
50
                }
51
        }
52
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc