Files
RenewCMS/internal/infrastructure/useCases/mediaUploader.go
T
2026-09-30 18:35:28 +02:00

41 lines
782 B
Go

package useCases
import (
"RenewCMS/internal/domain/user"
"errors"
)
type uploaderNames struct {
userRepository user.Repository
names map[uint32]string
}
func newUploaderNames(userRepository user.Repository) *uploaderNames {
return &uploaderNames{userRepository: userRepository, names: map[uint32]string{}}
}
func (u *uploaderNames) nameOf(userId uint32) (string, error) {
if userId == 0 {
return "", nil
}
if name, ok := u.names[userId]; ok {
return name, nil
}
uploader, err := u.userRepository.Get(userId)
if errors.Is(err, user.ErrUserNotFound) {
u.names[userId] = ""
return "", nil
}
if err != nil {
return "", err
}
name := uploader.DisplayName
if name == "" {
name = uploader.Username
}
u.names[userId] = name
return name, nil
}