gitea源码

settings.go 1.9KB

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