mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-22 23:54:33 +01:00
Extract all direct database calls from entranceserver (2 calls) and API server (17 calls) into typed repository interfaces with PostgreSQL implementations, matching the pattern established in signserver and channelserver. Entranceserver: EntranceServerRepo, EntranceSessionRepo API server: APIUserRepo, APICharacterRepo, APISessionRepo Also fix the 3 remaining fmt.Sprintf calls inside logger invocations in handlers_commands.go and handlers_stage.go, replacing them with structured zap fields. Unskip 5 TestNewAuthData* tests that previously required a real database — they now run with mock repos.
20 lines
844 B
Go
20 lines
844 B
Go
package entranceserver
|
|
|
|
// Repository interfaces decouple entrance server business logic from concrete
|
|
// PostgreSQL implementations, enabling mock/stub injection for unit tests.
|
|
|
|
// EntranceServerRepo defines the contract for server-related data access
|
|
// used by the entrance server when building server list responses.
|
|
type EntranceServerRepo interface {
|
|
// GetCurrentPlayers returns the current player count for a given server ID.
|
|
GetCurrentPlayers(serverID int) (uint16, error)
|
|
}
|
|
|
|
// EntranceSessionRepo defines the contract for session-related data access
|
|
// used by the entrance server when resolving user locations.
|
|
type EntranceSessionRepo interface {
|
|
// GetServerIDForCharacter returns the server ID where the given character
|
|
// is currently signed in, or 0 if not found.
|
|
GetServerIDForCharacter(charID uint32) (uint16, error)
|
|
}
|