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.Models.Eft.Profile; using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Routers.Static; [Injectable] public class ProfileStaticRouter : StaticRouter { public ProfileStaticRouter(ProfileCallbacks profileCallbacks, JsonUtil jsonUtil) : base( jsonUtil, [ new RouteAction( "/client/game/profile/create", async (url, info, sessionID, output) => await profileCallbacks.CreateProfile( url, info as ProfileCreateRequestData, sessionID ), typeof(ProfileCreateRequestData) ), new RouteAction( "/client/game/profile/list", async (url, info, sessionID, output) => await profileCallbacks.GetProfileData( url, info as EmptyRequestData, sessionID ) ), new RouteAction( "/client/game/profile/savage/regenerate", async (url, info, sessionID, output) => await profileCallbacks.RegenerateScav( url, info as EmptyRequestData, sessionID ) ), new RouteAction( "/client/game/profile/voice/change", async (url, info, sessionID, output) => await profileCallbacks.ChangeVoice( url, info as ProfileChangeVoiceRequestData, sessionID ), typeof(ProfileChangeVoiceRequestData) ), new RouteAction( "/client/game/profile/nickname/change", async (url, info, sessionID, output) => await profileCallbacks.ChangeNickname( url, info as ProfileChangeNicknameRequestData, sessionID ), typeof(ProfileChangeNicknameRequestData) ), new RouteAction( "/client/game/profile/nickname/validate", async (url, info, sessionID, output) => await profileCallbacks.ValidateNickname( url, info as ValidateNicknameRequestData, sessionID ), typeof(ValidateNicknameRequestData) ), new RouteAction( "/client/game/profile/nickname/reserved", async (url, info, sessionID, output) => await profileCallbacks.GetReservedNickname( url, info as EmptyRequestData, sessionID ) ), new RouteAction( "/client/profile/status", async (url, info, sessionID, output) => await profileCallbacks.GetProfileStatus( url, info as EmptyRequestData, sessionID ) ), new RouteAction( "/client/profile/view", async (url, info, sessionID, output) => await profileCallbacks.GetOtherProfile( url, info as GetOtherProfileRequest, sessionID ), typeof(GetOtherProfileRequest) ), new RouteAction( "/client/profile/settings", async (url, info, sessionID, output) => await profileCallbacks.GetProfileSettings( url, info as GetProfileSettingsRequest, sessionID ), typeof(GetProfileSettingsRequest) ), new RouteAction( "/client/game/profile/search", async (url, info, sessionID, output) => await profileCallbacks.SearchProfiles( url, info as SearchProfilesRequestData, sessionID ), typeof(SearchProfilesRequestData) ), new RouteAction( "/launcher/profile/info", async (url, info, sessionID, output) => await profileCallbacks.GetMiniProfile( url, info as GetMiniProfileRequestData, sessionID ), typeof(GetMiniProfileRequestData) ), new RouteAction( "/launcher/profiles", async (url, info, sessionID, output) => await profileCallbacks.GetAllMiniProfiles( url, info as EmptyRequestData, sessionID ) ), ] ) { } }