@Summary Get user preference settings @ID get-user-preference-settings @Security CoderSessionToken @Produce json @Tags Users @Param user path string true "User ID, name, or me" @Success 200 {object} codersdk.UserPreferenceSettings @Router /api/v2/users/{user}/preferences [get]
(rw http.ResponseWriter, r *http.Request)
| 1281 | // @Success 200 {object} codersdk.UserPreferenceSettings |
| 1282 | // @Router /api/v2/users/{user}/preferences [get] |
| 1283 | func (api *API) userPreferenceSettings(rw http.ResponseWriter, r *http.Request) { |
| 1284 | var ( |
| 1285 | ctx = r.Context() |
| 1286 | user = httpmw.UserParam(r) |
| 1287 | ) |
| 1288 | |
| 1289 | taskAlertDismissed, err := api.Database.GetUserTaskNotificationAlertDismissed(ctx, user.ID) |
| 1290 | if err != nil { |
| 1291 | if !errors.Is(err, sql.ErrNoRows) { |
| 1292 | httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ |
| 1293 | Message: "Error reading user preference settings.", |
| 1294 | Detail: err.Error(), |
| 1295 | }) |
| 1296 | return |
| 1297 | } |
| 1298 | } |
| 1299 | |
| 1300 | thinkingMode, err := api.Database.GetUserThinkingDisplayMode(ctx, user.ID) |
| 1301 | if err != nil && !errors.Is(err, sql.ErrNoRows) { |
| 1302 | httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ |
| 1303 | Message: "Error reading user preference settings.", |
| 1304 | Detail: err.Error(), |
| 1305 | }) |
| 1306 | return |
| 1307 | } |
| 1308 | |
| 1309 | shellToolMode, err := api.Database.GetUserShellToolDisplayMode(ctx, user.ID) |
| 1310 | if err != nil && !errors.Is(err, sql.ErrNoRows) { |
| 1311 | httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ |
| 1312 | Message: "Error reading user preference settings.", |
| 1313 | Detail: err.Error(), |
| 1314 | }) |
| 1315 | return |
| 1316 | } |
| 1317 | |
| 1318 | codeDiffMode, err := api.Database.GetUserCodeDiffDisplayMode(ctx, user.ID) |
| 1319 | if err != nil && !errors.Is(err, sql.ErrNoRows) { |
| 1320 | httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ |
| 1321 | Message: "Error reading user preference settings.", |
| 1322 | Detail: err.Error(), |
| 1323 | }) |
| 1324 | return |
| 1325 | } |
| 1326 | |
| 1327 | agentChatSendShortcut, err := api.Database.GetUserAgentChatSendShortcut(ctx, user.ID) |
| 1328 | if err != nil && !errors.Is(err, sql.ErrNoRows) { |
| 1329 | httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ |
| 1330 | Message: "Error reading user preference settings.", |
| 1331 | Detail: err.Error(), |
| 1332 | }) |
| 1333 | return |
| 1334 | } |
| 1335 | |
| 1336 | httpapi.Write(ctx, rw, http.StatusOK, codersdk.UserPreferenceSettings{ |
| 1337 | TaskNotificationAlertDismissed: taskAlertDismissed, |
| 1338 | ThinkingDisplayMode: sanitizeThinkingDisplayMode(thinkingMode), |
| 1339 | ShellToolDisplayMode: sanitizeAgentDisplayMode(shellToolMode), |
| 1340 | CodeDiffDisplayMode: sanitizeAgentDisplayMode(codeDiffMode), |
nothing calls this directly
no test coverage detected