Adding consume property to create/update spawnable dtos

This commit is contained in:
hz
2025-06-09 19:07:48 -05:00
parent 83030c2a4e
commit 603a18e006
5 changed files with 16 additions and 6 deletions
+2 -2
View File
@@ -94,7 +94,7 @@ public class PlayerController : ControllerBase
}
[HttpPut]
[Authorize(Roles = "SUPER")]
[Authorize(Roles = "USER,SUPER")]
public async Task<IActionResult> Update([FromBody] UpdatePlayerRequest req)
{
var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
@@ -109,7 +109,7 @@ public class PlayerController : ControllerBase
}
[HttpDelete]
[Authorize(Roles = "SUPER")]
[Authorize(Roles = "USER,SUPER")]
public async Task<IActionResult> Delete()
{
var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
+3 -1
View File
@@ -26,7 +26,8 @@ public class SpawnableController : ControllerBase
Name = req.Name.ToLower(),
SpawnRate = req.SpawnRate,
CollectAction = req.CollectAction,
CollectResults = req.CollectResults
CollectResults = req.CollectResults,
ConsumeOnSuccess = req.ConsumeOnSuccess
};
await _spawnableService.CreateAsync(spawnable);
@@ -45,6 +46,7 @@ public class SpawnableController : ControllerBase
spawnable.SpawnRate = req.SpawnRate;
spawnable.CollectAction = req.CollectAction;
spawnable.CollectResults = req.CollectResults;
spawnable.ConsumeOnSuccess = req.ConsumeOnSuccess;
await _spawnableService.UpdateAsync(spawnable);
return Ok(spawnable);
@@ -21,7 +21,8 @@ public class SpawnableControllerTests
sp.CollectAction == "gather" &&
sp.CollectResults.Count == 2 &&
sp.CollectResults[0].Result == "resource" &&
sp.CollectResults[0].SuccessRate == 75)))
sp.CollectResults[0].SuccessRate == 75 &&
sp.ConsumeOnSuccess)))
.Returns(Task.CompletedTask).Verifiable();
var controller = new SpawnableController(svc.Object);
@@ -34,7 +35,8 @@ public class SpawnableControllerTests
{
new() { Result = "resource", SuccessRate = 75 },
new() { Result = "nothing", SuccessRate = 25 }
}
},
ConsumeOnSuccess = true
});
Assert.IsType<OkObjectResult>(result);
@@ -74,7 +76,7 @@ public class SpawnableControllerTests
svc.Setup(s => s.GetByIdAsync("id")).ReturnsAsync((Spawnable)null);
var controller = new SpawnableController(svc.Object);
var result = await controller.Update("id", new UpdateSpawnableRequest { Name="n", SpawnRate=1, CollectAction="a" });
var result = await controller.Update("id", new UpdateSpawnableRequest { Name="n", SpawnRate=1, CollectAction="a", ConsumeOnSuccess = false });
Assert.IsType<NotFoundObjectResult>(result);
}
+3
View File
@@ -12,4 +12,7 @@ public class CreateSpawnableRequest
// Possible outcomes of collecting the item
public List<CollectOutcome> CollectResults { get; set; } = [];
// Should the spawnable be removed after a successful action?
public bool ConsumeOnSuccess { get; set; } = false;
}
+3
View File
@@ -8,4 +8,7 @@ public class UpdateSpawnableRequest
public int SpawnRate { get; set; }
public string CollectAction { get; set; }
public List<CollectOutcome> CollectResults { get; set; } = [];
// Should the spawnable be removed after a successful action?
public bool ConsumeOnSuccess { get; set; } = false;
}