34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using System.Text.Json.Serialization;
|
|
using Tiku.Api.Controllers;
|
|
using Tiku.Api.OpenApi;
|
|
using Tiku.Api.Security;
|
|
|
|
namespace Tiku.Api.Configuration;
|
|
|
|
internal static class ApiPresentationExtensions
|
|
{
|
|
internal static IServiceCollection AddApiPresentation(this IServiceCollection services)
|
|
{
|
|
services.AddControllers(options =>
|
|
options.Conventions.Add(new EndpointAuthorizationMetadataConvention()))
|
|
.AddJsonOptions(options =>
|
|
{
|
|
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
|
|
});
|
|
services.AddOpenApi(options =>
|
|
{
|
|
options.AddDocumentTransformer<BearerSecuritySchemeTransformer>();
|
|
options.AddOperationTransformer<PlatformOperationMetadataTransformer>();
|
|
options.AddOperationTransformer<AuthenticationOperationTagsTransformer>();
|
|
});
|
|
services.AddProblemDetails();
|
|
services.AddScoped<TenantAdminActorResolver>();
|
|
services.AddScoped<DirectContentActorResolver>();
|
|
services.AddScoped<CommerceAdminActorResolver>();
|
|
services.AddScoped<LearningActorResolver>();
|
|
services.AddScoped<PlatformAdminActorResolver>();
|
|
|
|
return services;
|
|
}
|
|
}
|