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

Method putUserChatPersonalModelOverride

coderd/exp_chats.go:4967–5065  ·  view source on GitHub ↗

EXPERIMENTAL: this endpoint is experimental and is subject to change.

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

Source from the content-addressed store, hash-verified

4965
4966// EXPERIMENTAL: this endpoint is experimental and is subject to change.
4967func (api *API) putUserChatPersonalModelOverride(rw http.ResponseWriter, r *http.Request) {
4968 ctx := r.Context()
4969 apiKey := httpmw.APIKey(r)
4970
4971 enabled, err := api.Database.GetChatPersonalModelOverridesEnabled(ctx)
4972 if err != nil {
4973 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
4974 Message: "Internal error fetching personal model override setting.",
4975 Detail: err.Error(),
4976 })
4977 return
4978 }
4979 if !enabled {
4980 httpapi.Write(ctx, rw, http.StatusForbidden, codersdk.Response{
4981 Message: "An administrator has not enabled user personal model overrides.",
4982 })
4983 return
4984 }
4985
4986 overrideContext, ok := readChatPersonalModelOverrideContext(rw, r)
4987 if !ok {
4988 return
4989 }
4990
4991 var req codersdk.UpdateUserChatPersonalModelOverrideRequest
4992 if !httpapi.Read(ctx, rw, r, &req) {
4993 return
4994 }
4995
4996 modelConfigID := ""
4997 rawModelConfigID := strings.TrimSpace(req.ModelConfigID)
4998 switch req.Mode {
4999 case codersdk.ChatPersonalModelOverrideModeChatDefault:
5000 if rawModelConfigID != "" {
5001 httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
5002 Message: "model_config_id must be empty unless mode is model.",
5003 })
5004 return
5005 }
5006 case codersdk.ChatPersonalModelOverrideModeDeploymentDefault:
5007 if overrideContext == codersdk.ChatPersonalModelOverrideContextRoot {
5008 httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
5009 Message: "deployment_default is not supported for root personal model overrides.",
5010 })
5011 return
5012 }
5013 if rawModelConfigID != "" {
5014 httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
5015 Message: "model_config_id must be empty unless mode is model.",
5016 })
5017 return
5018 }
5019 case codersdk.ChatPersonalModelOverrideModeModel:
5020 if rawModelConfigID == "" {
5021 httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
5022 Message: "model_config_id is required when mode is model.",
5023 })
5024 return

Callers

nothing calls this directly

Calls 14

APIKeyFunction · 0.92
WriteFunction · 0.92
ReadFunction · 0.92
ContextMethod · 0.65
ParseMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected