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

mendersoftware / mender-server / 1977948902

11 Aug 2025 01:38PM UTC coverage: 65.755% (+0.3%) from 65.495%
1977948902

Pull #860

gitlab-ci

kjaskiewiczz
docs(useradm): move API specification to single file

Changelog: Title
Ticket: QA-1094

Signed-off-by: Krzysztof Jaskiewicz <krzysztof.jaskiewicz@northern.tech>
Pull Request #860: docs(useradm): move API specification to single file

29261 of 44500 relevant lines covered (65.76%)

1.44 hits per line

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

53.33
/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 {
5✔
15
        return Middleware("application/json")
5✔
16
}
5✔
17

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

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

31
        return func(c *gin.Context) {
10✔
32
                if c.Request.ContentLength > 0 {
10✔
33
                        contentType, _, err := mime.ParseMediaType(c.GetHeader("Content-Type"))
5✔
34
                        if err != nil {
5✔
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) {
5✔
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