using SPTarkov.DI.Annotations; using SPTarkov.Server.Core.Controllers; using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Builds; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.PresetBuild; using SPTarkov.Server.Core.Utils; namespace SPTarkov.Server.Core.Callbacks; [Injectable] public class BuildsCallbacks(HttpResponseUtil httpResponseUtil, BuildController buildController) { /// /// Handle client/builds/list /// /// public ValueTask GetBuilds(string url, EmptyRequestData _, MongoId sessionID) { return new ValueTask( httpResponseUtil.GetBody(buildController.GetUserBuilds(sessionID)) ); } /// /// Handle client/builds/magazine/save /// /// /// /// Session/player id /// public ValueTask CreateMagazineTemplate( string url, SetMagazineRequest request, MongoId sessionID ) { buildController.CreateMagazineTemplate(sessionID, request); return new ValueTask(httpResponseUtil.NullResponse()); } /// /// Handle client/builds/weapon/save /// /// public ValueTask SetWeapon( string url, PresetBuildActionRequestData request, MongoId sessionID ) { buildController.SaveWeaponBuild(sessionID, request); return new ValueTask(httpResponseUtil.NullResponse()); } /// /// Handle client/builds/equipment/save /// /// public ValueTask SetEquipment( string url, PresetBuildActionRequestData request, MongoId sessionID ) { buildController.SaveEquipmentBuild(sessionID, request); return new ValueTask(httpResponseUtil.NullResponse()); } /// /// Handle client/builds/delete /// /// public ValueTask DeleteBuild( string url, RemoveBuildRequestData request, MongoId sessionID ) { buildController.RemoveBuild(sessionID, request); return new ValueTask(httpResponseUtil.NullResponse()); } }