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 }