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

Method templateVersionPresets

coderd/presets.go:20–74  ·  view source on GitHub ↗

@Summary Get template version presets @ID get-template-version-presets @Security CoderSessionToken @Produce json @Tags Templates @Param templateversion path string true "Template version ID" format(uuid) @Success 200 {array} codersdk.Preset @Router /api/v2/templateversions/{templateversion}/presets

(rw http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

18// @Success 200 {array} codersdk.Preset
19// @Router /api/v2/templateversions/{templateversion}/presets [get]
20func (api *API) templateVersionPresets(rw http.ResponseWriter, r *http.Request) {
21 ctx := r.Context()
22 templateVersion := httpmw.TemplateVersionParam(r)
23
24 presets, err := api.Database.GetPresetsByTemplateVersionID(ctx, templateVersion.ID)
25 if err != nil {
26 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
27 Message: "Internal error fetching template version presets.",
28 Detail: err.Error(),
29 })
30 return
31 }
32
33 presetParams, err := api.Database.GetPresetParametersByTemplateVersionID(ctx, templateVersion.ID)
34 if err != nil {
35 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
36 Message: "Internal error fetching template version presets.",
37 Detail: err.Error(),
38 })
39 return
40 }
41
42 convertPrebuildInstances := func(desiredInstances sql.NullInt32) *int {
43 if desiredInstances.Valid {
44 value := int(desiredInstances.Int32)
45 return &value
46 }
47 return nil
48 }
49
50 var res []codersdk.Preset
51 for _, preset := range presets {
52 sdkPreset := codersdk.Preset{
53 ID: preset.ID,
54 Name: preset.Name,
55 Default: preset.IsDefault,
56 DesiredPrebuildInstances: convertPrebuildInstances(preset.DesiredInstances),
57 Description: preset.Description,
58 Icon: preset.Icon,
59 }
60 for _, presetParam := range presetParams {
61 if presetParam.TemplateVersionPresetID != preset.ID {
62 continue
63 }
64
65 sdkPreset.Parameters = append(sdkPreset.Parameters, codersdk.PresetParameter{
66 Name: presetParam.Name,
67 Value: presetParam.Value,
68 })
69 }
70 res = append(res, sdkPreset)
71 }
72
73 httpapi.Write(ctx, rw, http.StatusOK, res)
74}

Callers

nothing calls this directly

Calls 6

TemplateVersionParamFunction · 0.92
WriteFunction · 0.92
ContextMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected