All checks were successful
check / check (push) Successful in 1m0s
Adds a backward-compatible IRC wire protocol listener (RFC 1459/2812) with a shared service layer used by both IRC and HTTP transports. - TCP listener on configurable port (default :6667) - Full IRC protocol: NICK, USER, JOIN, PART, PRIVMSG, MODE, TOPIC, etc. - Shared service layer (internal/service/) for consistent code paths - Tier 2 join restrictions (ban, invite-only, key, limit) in service layer - Ban check on PRIVMSG in service layer - SetChannelFlag handles +i and +s modes - Command dispatch via map[string]cmdHandler pattern - EXPOSE 6667 in Dockerfile - Service layer unit tests closes #89
26 lines
558 B
Go
26 lines
558 B
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
"log/slog"
|
|
)
|
|
|
|
// NewTestDatabaseFromConn creates a Database wrapping an
|
|
// existing *sql.DB connection. Intended for integration
|
|
// tests in other packages.
|
|
func NewTestDatabaseFromConn(conn *sql.DB) *Database {
|
|
return &Database{ //nolint:exhaustruct
|
|
conn: conn,
|
|
log: slog.Default(),
|
|
}
|
|
}
|
|
|
|
// RunMigrations applies all schema migrations. Exposed
|
|
// for integration tests in other packages.
|
|
func (database *Database) RunMigrations(
|
|
ctx context.Context,
|
|
) error {
|
|
return database.runMigrations(ctx)
|
|
}
|