26 lines
668 B
Go
26 lines
668 B
Go
package useCases
|
|
|
|
import (
|
|
"RenewCMS/internal/domain/user"
|
|
"strings"
|
|
"unicode/utf8"
|
|
)
|
|
|
|
const maxDisplayNameRunes = 60
|
|
|
|
type UpdateUserProfileUseCase struct {
|
|
userRepository user.Repository
|
|
}
|
|
|
|
func NewUpdateUserProfileUseCase(userRepository user.Repository) *UpdateUserProfileUseCase {
|
|
return &UpdateUserProfileUseCase{userRepository}
|
|
}
|
|
|
|
func (u *UpdateUserProfileUseCase) UpdateDisplayName(userId uint32, displayName string) (user.User, error) {
|
|
trimmed := strings.TrimSpace(displayName)
|
|
if utf8.RuneCountInString(trimmed) > maxDisplayNameRunes {
|
|
return user.User{}, user.ErrInvalidDisplayName
|
|
}
|
|
return u.userRepository.UpdateDisplayName(userId, trimmed)
|
|
}
|