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

mendersoftware / mender-server / 1978029483

11 Aug 2025 02:15PM UTC coverage: 65.755% (+0.3%) from 65.495%
1978029483

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

0.0
/backend/pkg/apiclient/api_client.go
1
// Copyright 2023 Northern.tech AS
2
//
3
//        Licensed under the Apache License, Version 2.0 (the "License");
4
//        you may not use this file except in compliance with the License.
5
//        You may obtain a copy of the License at
6
//
7
//            http://www.apache.org/licenses/LICENSE-2.0
8
//
9
//        Unless required by applicable law or agreed to in writing, software
10
//        distributed under the License is distributed on an "AS IS" BASIS,
11
//        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
//        See the License for the specific language governing permissions and
13
//        limitations under the License.
14
package apiclient
15

16
import (
17
        "net/http"
18

19
        "github.com/mendersoftware/mender-server/pkg/requestid"
20

21
        ctxhttpheader "github.com/mendersoftware/mender-server/pkg/context/httpheader"
22
)
23

24
// maybeSetHeader sets HTTP header `hdr` to value `val` if `val` is not empty or
25
// the header is not yet set.
26
func maybeSetHeader(hdrs http.Header, hdr string, val string) {
×
27
        if val == "" {
×
28
                return
×
29
        }
×
30

31
        if hdrs.Get(hdr) == "" {
×
32
                hdrs.Add(hdr, val)
×
33
        }
×
34
}
35

36
// HttpApi is an http.Client wrapper tailored to use with mender's APIs.
37
type HttpApi struct {
38
}
39

40
// Do behaves similarly to http.Client.Do(), but will also automatically add
41
// mender related headers, if these can be built based on request's context. The
42
// headers are:
43
// - X-Mender-RequestId - extracted with requestid.FromContext()
44
// - Authorization - extracted with httpheader.FromContext()
45
// If given header is already set, the value from context will not be used
46
func (a *HttpApi) Do(r *http.Request) (*http.Response, error) {
×
47
        client := &http.Client{}
×
48
        ctx := r.Context()
×
49

×
50
        maybeSetHeader(r.Header, requestid.RequestIdHeader,
×
51
                requestid.FromContext(ctx))
×
52
        maybeSetHeader(r.Header, "Authorization",
×
53
                ctxhttpheader.FromContext(ctx, "Authorization"))
×
54

×
55
        return client.Do(r)
×
56
}
×
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