refactored to move away from storail, everything gets a manager now

This commit is contained in:
2025-06-12 18:33:27 -06:00
parent b4ca889999
commit d129911b8e
10 changed files with 441 additions and 373 deletions
+8 -29
View File
@@ -6,10 +6,9 @@ import gleam/erlang/process
import gleam/result
import glint
import mist
import player_session
import session
import player_manager
import session_manager
import socket_manager
import storail
pub type Error {
ConfigError(config.ConfigError)
@@ -21,28 +20,6 @@ pub fn error_string(err: Error) -> String {
}
}
pub fn setup_session_collection(
config: storail.Config,
) -> storail.Collection(session.Session) {
storail.Collection(
name: "Sessions",
to_json: session.serialize,
decoder: session.decoder(),
config:,
)
}
pub fn setup_player_session_collection(
config: storail.Config,
) -> storail.Collection(player_session.PlayerSession) {
storail.Collection(
name: "PlayerSessions",
to_json: player_session.encode_player_session,
decoder: player_session.player_session_decoder(),
config:,
)
}
pub fn run_server() -> glint.Command(Result(Nil, Error)) {
use <- glint.command_help("Runs the backend of Play of the Game")
use _, args, _ <- glint.command()
@@ -59,14 +36,16 @@ pub fn run_server() -> glint.Command(Result(Nil, Error)) {
}),
)
let storail_cfg = storail.Config(cfg.storage_path)
let player_manager = player_manager.new()
let socket_manager = socket_manager.new()
let session_manager = session_manager.new(player_manager, socket_manager)
let ctx =
web.Context(
config: cfg,
sessions: setup_session_collection(storail_cfg),
player_sessions: setup_player_session_collection(storail_cfg),
socket_manager: socket_manager.new(),
players: player_manager,
socket_manager:,
sessions: session_manager,
)
let handler = router.handle_request(_, ctx)