using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Controllers; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Customization; using SPTarkov.Server.Core.Models.Eft.ItemEvent; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Callbacks; [Injectable] public class CustomizationCallbacks( CustomizationController _customizationController, SaveServer _saveServer, HttpResponseUtil _httpResponseUtil ) { /// /// Handle client/trading/customization/storage /// /// public ValueTask GetCustomisationUnlocks(string url, EmptyRequestData _, string sessionID) { return new ValueTask(_httpResponseUtil.GetBody(_saveServer.GetProfile(sessionID).CustomisationUnlocks)); } /// /// Handle client/trading/customization /// /// public ValueTask GetTraderSuits(string url, EmptyRequestData _, string sessionID) { var splitUrl = url.Split('/'); var traderId = splitUrl[^3]; return new ValueTask(_httpResponseUtil.GetBody(_customizationController.GetTraderSuits(traderId, sessionID))); } /// /// Handle CustomizationBuy event /// /// public ItemEventRouterResponse BuyCustomisation(PmcData pmcData, BuyClothingRequestData request, string sessionID) { return _customizationController.BuyCustomisation(pmcData, request, sessionID); } /// /// Handle client/hideout/customization/offer/list /// /// public ValueTask GetHideoutCustomisation(string url, EmptyRequestData _, string sessionID) { return new ValueTask(_httpResponseUtil.GetBody(_customizationController.GetHideoutCustomisation(sessionID))); } /// /// Handle client/customization/storage /// /// public ValueTask GetStorage(string url, EmptyRequestData _, string sessionID) { return new ValueTask(_httpResponseUtil.GetBody(_customizationController.GetCustomisationStorage(sessionID))); } /// /// Handle CustomizationSet /// /// public ItemEventRouterResponse SetCustomisation(PmcData pmcData, CustomizationSetRequest request, string sessionID) { return _customizationController.SetCustomisation(sessionID, request, pmcData); } }