diff options
author | crupest <crupest@outlook.com> | 2022-12-01 19:19:47 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-12-02 13:35:35 +0800 |
commit | b44f957e6d886387e9f275dfb623540ae0acd737 (patch) | |
tree | dee523de3ff29067fa0202135a322079b295df4c /docker/crupest-api/CrupestApi/CrupestApi.Todos/TodosWebApplicationExtensions.cs | |
parent | 462ae43246799469f0c6cdac5e45e1a9d0f5da2e (diff) | |
download | crupest-b44f957e6d886387e9f275dfb623540ae0acd737.tar.gz crupest-b44f957e6d886387e9f275dfb623540ae0acd737.tar.bz2 crupest-b44f957e6d886387e9f275dfb623540ae0acd737.zip |
Restructure crupest-api.
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Todos/TodosWebApplicationExtensions.cs')
-rw-r--r-- | docker/crupest-api/CrupestApi/CrupestApi.Todos/TodosWebApplicationExtensions.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Todos/TodosWebApplicationExtensions.cs b/docker/crupest-api/CrupestApi/CrupestApi.Todos/TodosWebApplicationExtensions.cs new file mode 100644 index 0000000..575dc4f --- /dev/null +++ b/docker/crupest-api/CrupestApi/CrupestApi.Todos/TodosWebApplicationExtensions.cs @@ -0,0 +1,41 @@ +using System; +using System.Text.Json; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +namespace CrupestApi.Todos; + +public static class TodosWebApplicationExtensions +{ + public static WebApplication MapTodos(this WebApplication app, string path) + { + if (app is null) + { + throw new ArgumentNullException(nameof(app)); + } + + app.MapGet(path, async ([FromServices] TodosService todosService) => + { + var jsonOptions = new JsonSerializerOptions + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase + }; + + try + { + var todos = await todosService.GetTodosAsync(); + return Results.Json(todos, jsonOptions, statusCode: 200); + } + catch (Exception e) + { + return Results.Json(new + { + e.Message + }, jsonOptions, statusCode: StatusCodes.Status503ServiceUnavailable); + } + }); + + return app; + } +}
\ No newline at end of file |