Configure controllers.

This commit is contained in:
2025-11-13 14:27:00 +00:00
parent b1f32e6f13
commit be83594ea9
2 changed files with 24 additions and 2 deletions

View File

@@ -0,0 +1,16 @@
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Marechai.Server.Helpers;
public sealed class IsoDateTimeConverter : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) =>
DateTime.Parse(reader.GetString());
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ"));
}
}

View File

@@ -1,5 +1,6 @@
using System; using System;
using System.Linq; using System.Linq;
using System.Text.Json;
using Aaru.CommonTypes.Interop; using Aaru.CommonTypes.Interop;
using Marechai.Database; using Marechai.Database;
using Marechai.Database.Models; using Marechai.Database.Models;
@@ -144,8 +145,13 @@ file class Program
WebApplicationBuilder builder = WebApplication.CreateBuilder(args); WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
// Add services to the container. // Add services to the container.
builder.Services.AddControllers()
builder.Services.AddControllers(); .AddJsonOptions(options =>
{
options.JsonSerializerOptions.Converters.Add(new IsoDateTimeConverter());
options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
options.JsonSerializerOptions.WriteIndented = true;
});
// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi // Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi
builder.Services.AddOpenApi(); builder.Services.AddOpenApi();