using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Callbacks; using SPTarkov.Server.Core.DI; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Launcher; using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Routers.Static; [Injectable] public class LauncherStaticRouter : StaticRouter { public LauncherStaticRouter(LauncherCallbacks launcherCallbacks, JsonUtil jsonUtil) : base( jsonUtil, [ new RouteAction( "/launcher/ping", async (url, _, sessionID, _) => await launcherCallbacks.Ping(url, null, sessionID) ), new RouteAction( "/launcher/server/connect", async (_, _, _, _) => await launcherCallbacks.Connect() ), new RouteAction( "/launcher/profile/login", async (url, info, sessionID, _) => await launcherCallbacks.Login(url, info as LoginRequestData, sessionID), typeof(LoginRequestData) ), new RouteAction( "/launcher/profile/register", async (url, info, sessionID, _) => await launcherCallbacks.Register(url, info as RegisterData, sessionID), typeof(RegisterData) ), new RouteAction( "/launcher/profile/get", async (url, info, sessionID, _) => await launcherCallbacks.Get(url, info as LoginRequestData, sessionID), typeof(LoginRequestData) ), new RouteAction( "/launcher/profile/change/username", async (url, info, sessionID, _) => await launcherCallbacks.ChangeUsername( url, info as ChangeRequestData, sessionID ), typeof(ChangeRequestData) ), new RouteAction( "/launcher/profile/change/password", async (url, info, sessionID, _) => await launcherCallbacks.ChangePassword( url, info as ChangeRequestData, sessionID ), typeof(ChangeRequestData) ), new RouteAction( "/launcher/profile/change/wipe", async (url, info, sessionID, _) => await launcherCallbacks.Wipe(url, info as RegisterData, sessionID), typeof(RegisterData) ), new RouteAction( "/launcher/profile/remove", async (url, info, sessionID, _) => await launcherCallbacks.RemoveProfile( url, info as RemoveProfileData, sessionID ), typeof(RemoveProfileData) ), new RouteAction( "/launcher/profile/compatibleTarkovVersion", async (_, _, _, _) => await launcherCallbacks.GetCompatibleTarkovVersion() ), new RouteAction( "/launcher/server/version", async (_, _, _, _) => await launcherCallbacks.GetServerVersion() ), new RouteAction( "/launcher/server/loadedServerMods", async (_, _, _, _) => await launcherCallbacks.GetLoadedServerMods() ), new RouteAction( "/launcher/server/serverModsUsedByProfile", async (url, info, sessionID, _) => await launcherCallbacks.GetServerModsProfileUsed( url, info as EmptyRequestData, sessionID ), typeof(EmptyRequestData) ), ] ) { } }