feat: UpdateUser implemented

This commit is contained in:
Iron_Felix 2025-11-24 08:31:55 +03:00
parent cfb2523cfd
commit e999534b3f
4 changed files with 193 additions and 33 deletions

View file

@ -33,7 +33,7 @@ func mapUser(u sqlc.GetUserByIDRow) oapi.User {
CreationDate: &u.CreationDate,
DispName: u.DispName,
Id: &u.ID,
Mail: (*types.Email)(u.Mail),
Mail: StringToEmail(u.Mail),
Nickname: u.Nickname,
UserDesc: u.UserDesc,
}
@ -270,3 +270,49 @@ func (s Server) GetUsersUserIdTitles(ctx context.Context, request oapi.GetUsersU
return oapi.GetUsersUserIdTitles200JSONResponse{Cursor: new_cursor, Data: oapi_usertitles}, nil
}
func EmailToStringPtr(e *types.Email) *string {
if e == nil {
return nil
}
s := string(*e)
return &s
}
func StringToEmail(e *string) *types.Email {
if e == nil {
return nil
}
s := types.Email(*e)
return &s
}
// UpdateUser implements oapi.StrictServerInterface.
func (s Server) UpdateUser(ctx context.Context, request oapi.UpdateUserRequestObject) (oapi.UpdateUserResponseObject, error) {
params := sqlc.UpdateUserParams{
AvatarID: request.Body.AvatarId,
DispName: request.Body.DispName,
UserDesc: request.Body.UserDesc,
Mail: EmailToStringPtr(request.Body.Mail),
UserID: request.UserId,
}
user, err := s.db.UpdateUser(ctx, params)
if err != nil {
log.Errorf("%v", err)
return oapi.UpdateUser500Response{}, nil
}
oapi_user := oapi.User{ // maybe its possible to make one sqlc type and use one map func iinstead of this shit
AvatarId: user.AvatarID,
CreationDate: &user.CreationDate,
DispName: user.DispName,
Id: &user.ID,
Mail: StringToEmail(user.Mail),
Nickname: user.Nickname,
UserDesc: user.UserDesc,
}
return oapi.UpdateUser200JSONResponse(oapi_user), nil
}