From 5da5ebbad1d84390009038a9231977d7ed7e2d60 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 4 Dec 2022 18:11:06 +0800 Subject: Develop secret api. v4 --- docker/crupest-api/CrupestApi/CrupestApi.Commons/Json.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Json.cs') diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Json.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Json.cs index 8409a96..1d8106c 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Json.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Json.cs @@ -18,8 +18,16 @@ public static class CrupestApiJsonExtensions return services; } + public static async Task WriteJsonAsync(this HttpResponse response, T bodyObject, int statusCode, HttpResponseAction? beforeWriteBody, CancellationToken cancellationToken = default) + { + await response.WriteJsonAsync(bodyObject, statusCode, (context) => + { + beforeWriteBody?.Invoke(context); + return Task.CompletedTask; + }, cancellationToken); + } - public static async Task WriteJsonAsync(this HttpResponse response, T bodyObject, int statusCode = 200, HttpResponseAction? beforeWriteBody = null, CancellationToken cancellationToken = default) + public static async Task WriteJsonAsync(this HttpResponse response, T bodyObject, int statusCode = 200, AsyncHttpResponseAction? beforeWriteBody = null, CancellationToken cancellationToken = default) { var jsonOptions = response.HttpContext.RequestServices.GetRequiredService>(); byte[] json = JsonSerializer.SerializeToUtf8Bytes(bodyObject, jsonOptions.Value); @@ -36,4 +44,9 @@ public static class CrupestApiJsonExtensions await response.Body.WriteAsync(json, cancellationToken); } + + public static async Task WriteMessageAsync(this HttpResponse response, string message, int statusCode = 200, HttpResponseAction? beforeWriteBody = null, CancellationToken cancellationToken = default) + { + await response.WriteJsonAsync(new ErrorBody(message), statusCode: statusCode, beforeWriteBody, cancellationToken); + } } -- cgit v1.2.3