code.gitea.io/gitea@v1.22.3/routers/api/v1/user/settings.go (about) 1 // Copyright 2021 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package user 5 6 import ( 7 "net/http" 8 9 "code.gitea.io/gitea/modules/optional" 10 api "code.gitea.io/gitea/modules/structs" 11 "code.gitea.io/gitea/modules/web" 12 "code.gitea.io/gitea/services/context" 13 "code.gitea.io/gitea/services/convert" 14 user_service "code.gitea.io/gitea/services/user" 15 ) 16 17 // GetUserSettings returns user settings 18 func GetUserSettings(ctx *context.APIContext) { 19 // swagger:operation GET /user/settings user getUserSettings 20 // --- 21 // summary: Get user settings 22 // produces: 23 // - application/json 24 // responses: 25 // "200": 26 // "$ref": "#/responses/UserSettings" 27 ctx.JSON(http.StatusOK, convert.User2UserSettings(ctx.Doer)) 28 } 29 30 // UpdateUserSettings returns user settings 31 func UpdateUserSettings(ctx *context.APIContext) { 32 // swagger:operation PATCH /user/settings user updateUserSettings 33 // --- 34 // summary: Update user settings 35 // parameters: 36 // - name: body 37 // in: body 38 // schema: 39 // "$ref": "#/definitions/UserSettingsOptions" 40 // produces: 41 // - application/json 42 // responses: 43 // "200": 44 // "$ref": "#/responses/UserSettings" 45 46 form := web.GetForm(ctx).(*api.UserSettingsOptions) 47 48 opts := &user_service.UpdateOptions{ 49 FullName: optional.FromPtr(form.FullName), 50 Description: optional.FromPtr(form.Description), 51 Website: optional.FromPtr(form.Website), 52 Location: optional.FromPtr(form.Location), 53 Language: optional.FromPtr(form.Language), 54 Theme: optional.FromPtr(form.Theme), 55 DiffViewStyle: optional.FromPtr(form.DiffViewStyle), 56 KeepEmailPrivate: optional.FromPtr(form.HideEmail), 57 KeepActivityPrivate: optional.FromPtr(form.HideActivity), 58 } 59 if err := user_service.UpdateUser(ctx, ctx.Doer, opts); err != nil { 60 ctx.InternalServerError(err) 61 return 62 } 63 64 ctx.JSON(http.StatusOK, convert.User2UserSettings(ctx.Doer)) 65 }