chore: update resource service

This commit is contained in:
Steven
2023-10-03 23:44:14 +08:00
parent 2e82ba50f2
commit 7dc4bc5714
13 changed files with 832 additions and 218 deletions

View File

@@ -76,33 +76,33 @@ func (s *UserService) UpdateUser(ctx context.Context, request *apiv2pb.UpdateUse
ID: currentUser.ID,
UpdatedTs: &currentTs,
}
for _, path := range request.UpdateMask {
if path == "username" {
for _, field := range request.UpdateMask {
if field == "username" {
if !usernameMatcher.MatchString(strings.ToLower(request.User.Username)) {
return nil, status.Errorf(codes.InvalidArgument, "invalid username: %s", request.User.Username)
}
update.Username = &request.User.Username
} else if path == "nickname" {
} else if field == "nickname" {
update.Nickname = &request.User.Nickname
} else if path == "email" {
} else if field == "email" {
update.Email = &request.User.Email
} else if path == "avatar_url" {
} else if field == "avatar_url" {
update.AvatarURL = &request.User.AvatarUrl
} else if path == "role" {
} else if field == "role" {
role := convertUserRoleToStore(request.User.Role)
update.Role = &role
} else if path == "password" {
} else if field == "password" {
passwordHash, err := bcrypt.GenerateFromPassword([]byte(request.User.Password), bcrypt.DefaultCost)
if err != nil {
return nil, echo.NewHTTPError(http.StatusInternalServerError, "failed to generate password hash").SetInternal(err)
}
passwordHashStr := string(passwordHash)
update.PasswordHash = &passwordHashStr
} else if path == "row_status" {
} else if field == "row_status" {
rowStatus := convertRowStatusToStore(request.User.RowStatus)
update.RowStatus = &rowStatus
} else {
return nil, status.Errorf(codes.InvalidArgument, "invalid update path: %s", path)
return nil, status.Errorf(codes.InvalidArgument, "invalid update path: %s", field)
}
}