V13-FE-011: finalize search list layout slice
This commit is contained in:
+4
@@ -0,0 +1,4 @@
|
||||
using FastEndpoints;using Kbx.Shared.Experiments;using Kbx.Shared.Runtime;
|
||||
namespace Kbx.Modules.Common.Experiments.Assignments;
|
||||
public sealed record Request(string ScreenId);
|
||||
public sealed class Endpoint(KbxExperimentAssignmentService service):Endpoint<Request,KbxExperimentAssignmentsResponse>{public override void Configure(){Get("/api/kbx/experiments/assignments");Permissions("common.experiment.evaluate");}public override async Task HandleAsync(Request req,CancellationToken ct)=>await Send.OkAsync(await service.EvaluateAsync(RuntimeIdentity.TenantId(User),RuntimeIdentity.UserId(User),req.ScreenId,ct),ct);}
|
||||
@@ -0,0 +1,3 @@
|
||||
using FastEndpoints;using Kbx.Shared.Experiments;using Kbx.Shared.Runtime;
|
||||
namespace Kbx.Modules.Common.Experiments.Overview;
|
||||
public sealed class Endpoint(KbxExperimentOverviewQuery query):EndpointWithoutRequest<KbxExperimentOverviewResponse>{public override void Configure(){Get("/api/kbx/experiments");Permissions("common.experiment.read");}public override async Task HandleAsync(CancellationToken ct)=>await Send.OkAsync(await query.ExecuteAsync(RuntimeIdentity.TenantId(User),ct),ct);}
|
||||
@@ -0,0 +1,4 @@
|
||||
using FastEndpoints;using Kbx.Shared.Experiments;using Kbx.Shared.Runtime;
|
||||
namespace Kbx.Modules.Common.Experiments.Rollback;
|
||||
public sealed record Request(string ExperimentId,string Reason);
|
||||
public sealed class Endpoint(KbxExperimentRuntimeStore store):Endpoint<Request>{public override void Configure(){Post("/api/kbx/experiments/{experimentId}/rollback");Permissions("common.experiment.manage");}public override async Task HandleAsync(Request req,CancellationToken ct){await store.RollbackAsync(RuntimeIdentity.TenantId(User),RuntimeIdentity.UserId(User),req.ExperimentId,req.Reason,HttpContext.TraceIdentifier,ct);await Send.OkAsync(ct);}}
|
||||
@@ -0,0 +1,4 @@
|
||||
using FastEndpoints;using Kbx.Shared.Experiments;using Kbx.Shared.Runtime;
|
||||
namespace Kbx.Modules.Common.Experiments.Rollout;
|
||||
public sealed record Request(string ExperimentId,int RolloutPercent,string State,string Reason);
|
||||
public sealed class Endpoint(KbxExperimentRuntimeStore store):Endpoint<Request>{public override void Configure(){Post("/api/kbx/experiments/{experimentId}/rollout");Permissions("common.experiment.manage");}public override async Task HandleAsync(Request req,CancellationToken ct){await store.UpdateRolloutAsync(RuntimeIdentity.TenantId(User),RuntimeIdentity.UserId(User),req.ExperimentId,req.RolloutPercent,req.State,req.Reason,HttpContext.TraceIdentifier,ct);await Send.OkAsync(ct);}}
|
||||
Reference in New Issue
Block a user