using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Controllers; using SPTarkov.Server.Core.DI; using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Spt.Config; using SPTarkov.Server.Core.Servers; using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Callbacks; [Injectable(TypePriority = OnLoadOrder.TraderCallbacks)] public class TraderCallbacks(HttpResponseUtil httpResponseUtil, TraderController traderController, ConfigServer configServer) : IOnLoad, IOnUpdate { protected readonly TraderConfig TraderConfig = configServer.GetConfig(); public Task OnLoad() { traderController.Load(); return Task.CompletedTask; } public Task OnUpdate(long _) { traderController.Update(); return Task.FromResult(true); } /// /// Handle client/trading/api/traderSettings /// public ValueTask GetTraderSettings(string url, EmptyRequestData _, MongoId sessionID) { return new ValueTask(httpResponseUtil.GetBody(traderController.GetAllTraders(sessionID))); } /// /// Handle client/trading/api/getTrader /// public ValueTask GetTrader(string url, EmptyRequestData _, MongoId sessionID) { var traderID = url.Replace("/client/trading/api/getTrader/", ""); return new ValueTask(httpResponseUtil.GetBody(traderController.GetTrader(sessionID, traderID))); } /// /// Handle client/trading/api/getTraderAssort /// /// public ValueTask GetAssort(string url, EmptyRequestData _, MongoId sessionID) { var traderID = url.Replace("/client/trading/api/getTraderAssort/", ""); return new ValueTask(httpResponseUtil.GetBody(traderController.GetAssort(sessionID, traderID))); } }