diff --git a/repositories/character.go b/repositories/character.go index 213956d..1a3e8e3 100644 --- a/repositories/character.go +++ b/repositories/character.go @@ -33,6 +33,19 @@ func (r *CharacterRepository) GetCharacterByName(characterName string) (*types.C return &char, nil } +// GetAllCharacters retrieves all characters from the database +func (r *CharacterRepository) GetAllCharacters() ([]types.Character, error) { + logger.Debug("Fetching all characters from database") + var characters []types.Character + err := r.db.Find(&characters).Error + if err != nil { + logger.Error("Failed to fetch all characters: %v", err) + return nil, err + } + logger.Debug("Found %d characters in database", len(characters)) + return characters, nil +} + // SaveCharacter saves a character to the database func (r *CharacterRepository) SaveCharacter(character *types.Character) error { logger.Debug("Saving token for character %s to database", character.CharacterName) diff --git a/repositories/interfaces.go b/repositories/interfaces.go index 039d889..bf642fe 100644 --- a/repositories/interfaces.go +++ b/repositories/interfaces.go @@ -5,6 +5,7 @@ import "go-eve-pi/types" // CharacterRepositoryInterface defines the interface for character operations type CharacterRepositoryInterface interface { GetCharacterByName(characterName string) (*types.Character, error) + GetAllCharacters() ([]types.Character, error) SaveCharacter(character *types.Character) error }