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  }