code.gitea.io/gitea@v1.21.7/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 user_model "code.gitea.io/gitea/models/user" 10 "code.gitea.io/gitea/modules/context" 11 api "code.gitea.io/gitea/modules/structs" 12 "code.gitea.io/gitea/modules/web" 13 "code.gitea.io/gitea/services/convert" 14 ) 15 16 // GetUserSettings returns user settings 17 func GetUserSettings(ctx *context.APIContext) { 18 // swagger:operation GET /user/settings user getUserSettings 19 // --- 20 // summary: Get user settings 21 // produces: 22 // - application/json 23 // responses: 24 // "200": 25 // "$ref": "#/responses/UserSettings" 26 ctx.JSON(http.StatusOK, convert.User2UserSettings(ctx.Doer)) 27 } 28 29 // UpdateUserSettings returns user settings 30 func UpdateUserSettings(ctx *context.APIContext) { 31 // swagger:operation PATCH /user/settings user updateUserSettings 32 // --- 33 // summary: Update user settings 34 // parameters: 35 // - name: body 36 // in: body 37 // schema: 38 // "$ref": "#/definitions/UserSettingsOptions" 39 // produces: 40 // - application/json 41 // responses: 42 // "200": 43 // "$ref": "#/responses/UserSettings" 44 45 form := web.GetForm(ctx).(*api.UserSettingsOptions) 46 47 if form.FullName != nil { 48 ctx.Doer.FullName = *form.FullName 49 } 50 if form.Description != nil { 51 ctx.Doer.Description = *form.Description 52 } 53 if form.Website != nil { 54 ctx.Doer.Website = *form.Website 55 } 56 if form.Location != nil { 57 ctx.Doer.Location = *form.Location 58 } 59 if form.Language != nil { 60 ctx.Doer.Language = *form.Language 61 } 62 if form.Theme != nil { 63 ctx.Doer.Theme = *form.Theme 64 } 65 if form.DiffViewStyle != nil { 66 ctx.Doer.DiffViewStyle = *form.DiffViewStyle 67 } 68 69 if form.HideEmail != nil { 70 ctx.Doer.KeepEmailPrivate = *form.HideEmail 71 } 72 if form.HideActivity != nil { 73 ctx.Doer.KeepActivityPrivate = *form.HideActivity 74 } 75 76 if err := user_model.UpdateUser(ctx, ctx.Doer, false); err != nil { 77 ctx.InternalServerError(err) 78 return 79 } 80 81 ctx.JSON(http.StatusOK, convert.User2UserSettings(ctx.Doer)) 82 }