MCPcopy Create free account
hub / github.com/OpenCSGs/csghub-server / Update

Method Update

user/handler/user.go:89–122  ·  view source on GitHub ↗

CreateUser godoc @Security ApiKey @Summary Create a new user @Description create a new user @Tags User @Accept json @Produce json @Param body body types.CreateUserRequest true "body" @Success 200 {object} types.Response{data=database.User} "OK" @Failure

(ctx *gin.Context)

Source from the content-addressed store, hash-verified

87// @Failure 500 {object} types.APIInternalServerError "Internal server error"
88// @Router /user/{username} [put]
89func (h *UserHandler) Update(ctx *gin.Context) {
90 currentUser := httpbase.GetCurrentUser(ctx)
91 var req *types.UpdateUserRequest
92 if err := ctx.ShouldBindJSON(&req); err != nil {
93 slog.Error("Bad request format", "error", err)
94 httpbase.BadRequest(ctx, err.Error())
95 return
96 }
97
98 var err error
99 _, err = h.sc.CheckRequest(ctx, req)
100 if err != nil {
101 slog.Error("failed to check sensitive request", slog.Any("error", err))
102 httpbase.BadRequest(ctx, fmt.Errorf("sensitive check failed: %w", err).Error())
103 return
104 }
105
106 userName := ctx.Param("username")
107 req.Username = userName
108
109 if req.NewUserName != nil {
110 err = h.c.ChangeUserName(ctx, req.Username, *req.NewUserName, currentUser)
111 } else {
112 err = h.c.Update(ctx, req, currentUser)
113 }
114 if err != nil {
115 slog.Error("Failed to update user", slog.Any("error", err))
116 httpbase.ServerError(ctx, err)
117 return
118 }
119
120 slog.Info("Update user succeed", slog.String("user", req.Username))
121 httpbase.OK(ctx, nil)
122}
123
124// DeleteUser godoc
125// @Security ApiKey

Callers

nothing calls this directly

Calls 7

GetCurrentUserFunction · 0.92
BadRequestFunction · 0.92
ServerErrorFunction · 0.92
OKFunction · 0.92
ErrorMethod · 0.80
CheckRequestMethod · 0.65
ChangeUserNameMethod · 0.45

Tested by

no test coverage detected