Add skill-group prototypes, delete flows, and per-group skill creation UX

This commit is contained in:
2026-02-26 14:12:15 +01:00
parent 04bc8095e6
commit 3b1a314a75
17 changed files with 740 additions and 111 deletions

View File

@@ -19,15 +19,27 @@ internal static class SkillEndpoints
return ApiResultMapper.ToApiResult(result);
});
group.MapDelete("/skills/{skillId:guid}", (Guid skillId, HttpContext context, IGameService game) =>
{
var result = game.DeleteSkill(context.GetRequiredSessionToken(), skillId);
return ApiResultMapper.ToApiResult(result);
});
group.MapPost("/characters/{characterId:guid}/skill-groups", (Guid characterId, CreateSkillGroupRequest request, HttpContext context, IGameService game) =>
{
var result = game.CreateSkillGroup(context.GetRequiredSessionToken(), characterId, request.Name);
var result = game.CreateSkillGroup(context.GetRequiredSessionToken(), characterId, request.Name, request.DiceRollDefinition, request.WildDice, request.AllowFumble);
return ApiResultMapper.ToApiResult(result);
});
group.MapPut("/skill-groups/{skillGroupId:guid}", (Guid skillGroupId, UpdateSkillGroupRequest request, HttpContext context, IGameService game) =>
{
var result = game.UpdateSkillGroup(context.GetRequiredSessionToken(), skillGroupId, request.Name);
var result = game.UpdateSkillGroup(context.GetRequiredSessionToken(), skillGroupId, request.Name, request.DiceRollDefinition, request.WildDice, request.AllowFumble);
return ApiResultMapper.ToApiResult(result);
});
group.MapDelete("/skill-groups/{skillGroupId:guid}", (Guid skillGroupId, HttpContext context, IGameService game) =>
{
var result = game.DeleteSkillGroup(context.GetRequiredSessionToken(), skillGroupId);
return ApiResultMapper.ToApiResult(result);
});