EXPERIMENTAL: this endpoint is experimental and is subject to change. nolint:revive // get-return: revive assumes get* must be a getter, but this is an HTTP handler.
(rw http.ResponseWriter, r *http.Request)
| 4901 | // |
| 4902 | //nolint:revive // get-return: revive assumes get* must be a getter, but this is an HTTP handler. |
| 4903 | func (api *API) getUserChatPersonalModelOverrides(rw http.ResponseWriter, r *http.Request) { |
| 4904 | ctx := r.Context() |
| 4905 | apiKey := httpmw.APIKey(r) |
| 4906 | |
| 4907 | enabled, err := api.Database.GetChatPersonalModelOverridesEnabled(ctx) |
| 4908 | if err != nil { |
| 4909 | httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ |
| 4910 | Message: "Internal error fetching personal model override setting.", |
| 4911 | Detail: err.Error(), |
| 4912 | }) |
| 4913 | return |
| 4914 | } |
| 4915 | |
| 4916 | rows, err := api.Database.ListUserChatPersonalModelOverrides(ctx, apiKey.UserID) |
| 4917 | if err != nil { |
| 4918 | httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ |
| 4919 | Message: "Internal error fetching user personal model overrides.", |
| 4920 | Detail: err.Error(), |
| 4921 | }) |
| 4922 | return |
| 4923 | } |
| 4924 | |
| 4925 | values := make(map[codersdk.ChatPersonalModelOverrideContext]string, len(rows)) |
| 4926 | for _, row := range rows { |
| 4927 | rawContext, ok := strings.CutPrefix(row.Key, chatd.ChatPersonalModelOverrideKeyPrefix) |
| 4928 | if !ok { |
| 4929 | continue |
| 4930 | } |
| 4931 | overrideContext, ok := parseChatPersonalModelOverrideContext(rawContext) |
| 4932 | if !ok { |
| 4933 | continue |
| 4934 | } |
| 4935 | values[overrideContext] = row.Value |
| 4936 | } |
| 4937 | |
| 4938 | deploymentDefaults, err := api.chatPersonalModelOverrideDeploymentDefaults(ctx) |
| 4939 | if err != nil { |
| 4940 | httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ |
| 4941 | Message: "Internal error fetching deployment model defaults.", |
| 4942 | Detail: err.Error(), |
| 4943 | }) |
| 4944 | return |
| 4945 | } |
| 4946 | |
| 4947 | response := codersdk.UserChatPersonalModelOverridesResponse{ |
| 4948 | Enabled: enabled, |
| 4949 | DeploymentDefaults: deploymentDefaults, |
| 4950 | } |
| 4951 | for _, overrideContext := range chatPersonalModelOverrideContexts { |
| 4952 | raw, isSet := values[overrideContext] |
| 4953 | override := chatPersonalModelOverrideResponse(overrideContext, raw, isSet) |
| 4954 | switch overrideContext { |
| 4955 | case codersdk.ChatPersonalModelOverrideContextRoot: |
| 4956 | response.Root = override |
| 4957 | case codersdk.ChatPersonalModelOverrideContextGeneral: |
| 4958 | response.General = override |
| 4959 | case codersdk.ChatPersonalModelOverrideContextExplore: |
| 4960 | response.Explore = override |
no test coverage detected