Skip to content

Commit 2d42283

Browse files
committed
Refactor mapping
1 parent 46676a9 commit 2d42283

File tree

4 files changed

+20
-19
lines changed

4 files changed

+20
-19
lines changed

src/api/Elastic.Documentation.Api.Lambda/AskAiEndpoint.cs renamed to src/api/Elastic.Documentation.Api.Infrastructure/MappingsExstension.cs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,20 @@
33
// See the LICENSE file in the project root for more information
44

55
using Elastic.Documentation.Api.Core.AskAi;
6+
using Microsoft.AspNetCore.Builder;
7+
using Microsoft.AspNetCore.Http;
8+
using Microsoft.AspNetCore.Routing;
69

7-
namespace Elastic.Documentation.Api.Lambda;
10+
namespace Elastic.Documentation.Api.Infrastructure;
811

9-
public static class AskAiEndpoint
12+
public static class MappingsExtension
1013
{
11-
public static void MapAskAiEndpoint(this RouteGroupBuilder parentGroup)
14+
public static void MapElasticDocsApiEndpoints(this IEndpointRouteBuilder group) =>
15+
MapAskAiEndpoint(group);
16+
17+
private static void MapAskAiEndpoint(IEndpointRouteBuilder group)
1218
{
13-
var askAiGroup = parentGroup.MapGroup("/ask-ai");
19+
var askAiGroup = group.MapGroup("/ask-ai");
1420
_ = askAiGroup.MapPost("/stream", async (AskAiRequest askAiRequest, AskAiUsecase askAiUsecase, Cancel ctx) =>
1521
{
1622
var stream = await askAiUsecase.AskAi(askAiRequest, ctx);

src/api/Elastic.Documentation.Api.Infrastructure/ServicesExtension.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ public class LlmGatewayOptions
3232

3333
public static class ServicesExtension
3434
{
35-
public static void AddApiUsecases(this IServiceCollection services, string? appEnvironment)
35+
public static void AddElasticDocsApiUsecases(this IServiceCollection services, string? appEnvironment)
3636
{
3737
if (AppEnvironmentExtensions.TryParse(appEnvironment, out var parsedEnvironment, true))
3838
{
39-
AddApiUsecases(
39+
AddElasticDocsApiUsecases(
4040
services,
4141
parsedEnvironment
4242
);
@@ -45,15 +45,15 @@ public static void AddApiUsecases(this IServiceCollection services, string? appE
4545
{
4646
var logger = services.BuildServiceProvider().GetRequiredService<ILogger>();
4747
logger.LogWarning("Unable to parse environment {Environment} into AppEnvironment. Using default AppEnvironment.Dev", appEnvironment);
48-
AddApiUsecases(
48+
AddElasticDocsApiUsecases(
4949
services,
5050
AppEnvironment.Dev
5151
);
5252
}
5353
}
5454

5555

56-
private static void AddApiUsecases(this IServiceCollection services, AppEnvironment appEnvironment)
56+
private static void AddElasticDocsApiUsecases(this IServiceCollection services, AppEnvironment appEnvironment)
5757
{
5858
_ = services.ConfigureHttpJsonOptions(options =>
5959
{

src/api/Elastic.Documentation.Api.Lambda/Program.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,16 @@
66
using Amazon.Lambda.APIGatewayEvents;
77
using Amazon.Lambda.Serialization.SystemTextJson;
88
using Elastic.Documentation.Api.Infrastructure;
9-
using Elastic.Documentation.Api.Lambda;
109

1110
var builder = WebApplication.CreateSlimBuilder(args);
1211

1312
builder.Services.AddAWSLambdaHosting(LambdaEventSource.RestApi, new SourceGeneratorLambdaJsonSerializer<LambdaJsonSerializerContext>());
14-
builder.Services.AddApiUsecases(Environment.GetEnvironmentVariable("APP_ENVIRONMENT"));
13+
builder.Services.AddElasticDocsApiUsecases(Environment.GetEnvironmentVariable("APP_ENVIRONMENT"));
1514

1615
var app = builder.Build();
1716

1817
var v1 = app.MapGroup("/v1");
19-
v1.MapAskAiEndpoint();
18+
v1.MapElasticDocsApiEndpoints();
2019

2120
app.Run();
2221

src/tooling/docs-builder/Http/DocumentationWebHost.cs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public DocumentationWebHost(ILoggerFactory logFactory, string? path, int port, I
4040
{
4141
_writeFileSystem = writeFs;
4242
var builder = WebApplication.CreateSlimBuilder();
43-
builder.Services.AddApiUsecases("dev");
43+
builder.Services.AddElasticDocsApiUsecases("dev");
4444
DocumentationTooling.CreateServiceCollection(builder.Services, LogLevel.Information);
4545
_ = builder.Logging
4646
.AddFilter("Microsoft.AspNetCore.Hosting.Diagnostics", LogLevel.Error)
@@ -134,7 +134,9 @@ private void SetUpRoutes()
134134
_ = _webApplication.MapGet("/api/{**slug}", (string slug, ReloadableGeneratorState holder, Cancel ctx) =>
135135
ServeApiFile(holder, slug, ctx));
136136

137-
_ = _webApplication.MapPost("/_api/v1/ask-ai/stream", ProxyChatRequest);
137+
138+
var apiV1 = _webApplication.MapGroup("/_api/v1");
139+
apiV1.MapElasticDocsApiEndpoints();
138140

139141
_ = _webApplication.MapGet("{**slug}", (string slug, ReloadableGeneratorState holder, Cancel ctx) =>
140142
ServeDocumentationFile(holder, slug, ctx));
@@ -241,10 +243,4 @@ private static IResult LiveReloadHtml(string content, Encoding? encoding = null,
241243

242244
return Results.Content(content, "text/html", encoding, statusCode);
243245
}
244-
245-
private static async Task<IResult> ProxyChatRequest(AskAiRequest request, AskAiUsecase usecase, Cancel ctx)
246-
{
247-
var stream = await usecase.AskAi(request, ctx);
248-
return Results.Stream(stream, "text/event-stream");
249-
}
250246
}

0 commit comments

Comments
 (0)