This commit is contained in:
2026-06-10 13:06:55 -07:00
parent 4621e8380b
commit 570ab363c2
987 changed files with 22413 additions and 21031 deletions

View File

View File

View File

94
src/api/MicCheck.Api/Identities/IdentitiesController.cs Normal file → Executable file
View File

@@ -1,47 +1,47 @@
using MicCheck.Api.Common.Security.Authorization;
using MicCheck.Api.Features;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace MicCheck.Api.Identities;
[ApiController]
[Route("api/v1/identities")]
[Authorize(Policy = AuthorizationPolicies.FlagsApiAccess)]
public class IdentitiesController(
FeatureEvaluationService featureEvaluationService,
IdentityResolutionService identityResolutionService) : ControllerBase
{
[HttpGet]
public async Task<ActionResult<IdentityResponse>> GetByIdentifier(
[FromQuery] string identifier, CancellationToken ct)
{
if (string.IsNullOrWhiteSpace(identifier))
return BadRequest("identifier query parameter is required.");
var environmentId = int.Parse(User.FindFirst("EnvironmentId")!.Value!);
var identity = await identityResolutionService.ResolveAsync(environmentId, identifier, null, ct);
var flags = await featureEvaluationService.EvaluateForIdentityAsync(environmentId, identifier, null, ct);
return Ok(new IdentityResponse(
identity.Traits.Select(TraitResponse.From).ToList(),
flags.Select(FlagResponse.From).ToList()));
}
[HttpPost]
public async Task<ActionResult<IdentityResponse>> Identify(
[FromBody] IdentityRequest request, CancellationToken ct)
{
var environmentId = int.Parse(User.FindFirst("EnvironmentId")!.Value!);
var identity = await identityResolutionService.ResolveAsync(
environmentId, request.Identifier, request.Traits, ct);
var flags = await featureEvaluationService.EvaluateForIdentityAsync(
environmentId, request.Identifier, request.Traits, ct);
return Ok(new IdentityResponse(
identity.Traits.Select(TraitResponse.From).ToList(),
flags.Select(FlagResponse.From).ToList()));
}
}
using MicCheck.Api.Common.Security.Authorization;
using MicCheck.Api.Features;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace MicCheck.Api.Identities;
[ApiController]
[Route("api/v1/identities")]
[Authorize(Policy = AuthorizationPolicies.FlagsApiAccess)]
public class IdentitiesController(
FeatureEvaluationService featureEvaluationService,
IdentityResolutionService identityResolutionService) : ControllerBase
{
[HttpGet]
public async Task<ActionResult<IdentityResponse>> GetByIdentifier(
[FromQuery] string identifier, CancellationToken ct)
{
if (string.IsNullOrWhiteSpace(identifier))
return BadRequest("identifier query parameter is required.");
var environmentId = int.Parse(User.FindFirst("EnvironmentId")!.Value!);
var identity = await identityResolutionService.ResolveAsync(environmentId, identifier, null, ct);
var flags = await featureEvaluationService.EvaluateForIdentityAsync(environmentId, identifier, null, ct);
return Ok(new IdentityResponse(
identity.Traits.Select(TraitResponse.From).ToList(),
flags.Select(FlagResponse.From).ToList()));
}
[HttpPost]
public async Task<ActionResult<IdentityResponse>> Identify(
[FromBody] IdentityRequest request, CancellationToken ct)
{
var environmentId = int.Parse(User.FindFirst("EnvironmentId")!.Value!);
var identity = await identityResolutionService.ResolveAsync(
environmentId, request.Identifier, request.Traits, ct);
var flags = await featureEvaluationService.EvaluateForIdentityAsync(
environmentId, request.Identifier, request.Traits, ct);
return Ok(new IdentityResponse(
identity.Traits.Select(TraitResponse.From).ToList(),
flags.Select(FlagResponse.From).ToList()));
}
}

0
src/api/MicCheck.Api/Identities/Identity.cs Normal file → Executable file
View File

0
src/api/MicCheck.Api/Identities/IdentityRequest.cs Normal file → Executable file
View File

View File

0
src/api/MicCheck.Api/Identities/IdentityResponse.cs Normal file → Executable file
View File

0
src/api/MicCheck.Api/Identities/IdentityTrait.cs Normal file → Executable file
View File

0
src/api/MicCheck.Api/Identities/TraitInput.cs Normal file → Executable file
View File

0
src/api/MicCheck.Api/Identities/TraitResponse.cs Normal file → Executable file
View File

0
src/api/MicCheck.Api/Identities/UpsertTraitRequest.cs Normal file → Executable file
View File