Some checks failed
check / check (push) Failing after 46s
Add a traditional IRC wire protocol listener (RFC 1459/2812) on configurable port (default :6667), sharing business logic with the HTTP API via a new service layer. - IRC listener: NICK, USER, PASS, JOIN, PART, PRIVMSG, NOTICE, TOPIC, MODE, KICK, QUIT, NAMES, LIST, WHOIS, WHO, AWAY, OPER, INVITE, LUSERS, MOTD, PING/PONG, CAP - Service layer: shared logic for both transports including channel join (with Tier 2 checks: ban/invite/key/limit), message send (with ban + moderation checks), nick change, topic, kick, mode, quit broadcast, away, oper, invite - BroadcastQuit uses FanOut pattern (one insert, N enqueues) - HTTP handlers delegate to service for all command logic - Tier 2 mode operations (+b/+i/+s/+k/+l) use service methods Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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)
|
|
}
|