refactored to move away from storail, everything gets a manager now
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user