aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Todos/TodosWebApplicationExtensions.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-12-01 19:19:47 +0800
committercrupest <crupest@outlook.com>2022-12-02 13:35:35 +0800
commitb44f957e6d886387e9f275dfb623540ae0acd737 (patch)
treedee523de3ff29067fa0202135a322079b295df4c /docker/crupest-api/CrupestApi/CrupestApi.Todos/TodosWebApplicationExtensions.cs
parent462ae43246799469f0c6cdac5e45e1a9d0f5da2e (diff)
downloadcrupest-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.cs41
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