MCPcopy Index your code
hub / github.com/coder/coder / ExtractProvisionerKeyParam

Function ExtractProvisionerKeyParam

coderd/httpmw/provisionerkey.go:27–58  ·  view source on GitHub ↗

ExtractProvisionerKeyParam extracts a provisioner key from a name in the {provisionerKey} URL parameter.

(db database.Store)

Source from the content-addressed store, hash-verified

25// ExtractProvisionerKeyParam extracts a provisioner key from a name in the {provisionerKey} URL
26// parameter.
27func ExtractProvisionerKeyParam(db database.Store) func(http.Handler) http.Handler {
28 return func(next http.Handler) http.Handler {
29 return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
30 ctx := r.Context()
31 organization := OrganizationParam(r)
32
33 provisionerKeyQuery := chi.URLParam(r, "provisionerkey")
34 if provisionerKeyQuery == "" {
35 httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
36 Message: "\"provisionerkey\" must be provided.",
37 })
38 return
39 }
40
41 provisionerKey, err := db.GetProvisionerKeyByName(ctx, database.GetProvisionerKeyByNameParams{
42 OrganizationID: organization.ID,
43 Name: provisionerKeyQuery,
44 })
45 if httpapi.Is404Error(err) {
46 httpapi.ResourceNotFound(rw)
47 return
48 }
49 if err != nil {
50 httpapi.InternalServerError(rw, err)
51 return
52 }
53
54 ctx = context.WithValue(ctx, provisionerKeyParamContextKey{}, provisionerKey)
55 next.ServeHTTP(rw, r.WithContext(ctx))
56 })
57 }
58}

Callers 1

NewFunction · 0.92

Calls 9

WriteFunction · 0.92
Is404ErrorFunction · 0.92
ResourceNotFoundFunction · 0.92
InternalServerErrorFunction · 0.92
OrganizationParamFunction · 0.85
WithContextMethod · 0.80
ContextMethod · 0.65
ServeHTTPMethod · 0.45

Tested by

no test coverage detected