Returns recent build parameters for the signed-in user. @Summary Get autofill build parameters for user @ID get-autofill-build-parameters-for-user @Security CoderSessionToken @Produce json @Tags Users @Param user path string true "User ID, username, or me" @Param template_id query string true "Temp
(rw http.ResponseWriter, r *http.Request)
| 786 | // @Success 200 {array} codersdk.UserParameter |
| 787 | // @Router /api/v2/users/{user}/autofill-parameters [get] |
| 788 | func (api *API) userAutofillParameters(rw http.ResponseWriter, r *http.Request) { |
| 789 | user := httpmw.UserParam(r) |
| 790 | |
| 791 | p := httpapi.NewQueryParamParser().RequiredNotEmpty("template_id") |
| 792 | templateID := p.UUID(r.URL.Query(), uuid.UUID{}, "template_id") |
| 793 | p.ErrorExcessParams(r.URL.Query()) |
| 794 | if len(p.Errors) > 0 { |
| 795 | httpapi.Write(r.Context(), rw, http.StatusBadRequest, codersdk.Response{ |
| 796 | Message: "Invalid query parameters.", |
| 797 | Validations: p.Errors, |
| 798 | }) |
| 799 | return |
| 800 | } |
| 801 | |
| 802 | params, err := api.Database.GetUserWorkspaceBuildParameters( |
| 803 | r.Context(), |
| 804 | database.GetUserWorkspaceBuildParametersParams{ |
| 805 | OwnerID: user.ID, |
| 806 | TemplateID: templateID, |
| 807 | }, |
| 808 | ) |
| 809 | if err != nil && !errors.Is(err, sql.ErrNoRows) { |
| 810 | httpapi.Write(r.Context(), rw, http.StatusInternalServerError, codersdk.Response{ |
| 811 | Message: "Internal error fetching user's parameters.", |
| 812 | Detail: err.Error(), |
| 813 | }) |
| 814 | return |
| 815 | } |
| 816 | |
| 817 | sdkParams := []codersdk.UserParameter{} |
| 818 | for _, param := range params { |
| 819 | sdkParams = append(sdkParams, codersdk.UserParameter{ |
| 820 | Name: param.Name, |
| 821 | Value: param.Value, |
| 822 | }) |
| 823 | } |
| 824 | |
| 825 | httpapi.Write(r.Context(), rw, http.StatusOK, sdkParams) |
| 826 | } |
| 827 | |
| 828 | // Returns the user's login type. This only works if the api key for authorization |
| 829 | // and the requested user match. Eg: 'me' |
nothing calls this directly
no test coverage detected