From c3cd7b5a16cb8d6f902d77a1539c2e0c97dbdf14 Mon Sep 17 00:00:00 2001 From: Mario Steele Date: Thu, 31 Jul 2025 12:57:47 -0500 Subject: [PATCH] Added ChangeLog Added change log to track updates to the database, for easier pinging from Syncer client. --- FreeTubeSync/EndPoints/PingEndpoint.cs | 29 ++++++++++++++++++++++++ FreeTubeSync/Model/Database/ChangeLog.cs | 9 ++++++++ 2 files changed, 38 insertions(+) create mode 100644 FreeTubeSync/EndPoints/PingEndpoint.cs create mode 100644 FreeTubeSync/Model/Database/ChangeLog.cs diff --git a/FreeTubeSync/EndPoints/PingEndpoint.cs b/FreeTubeSync/EndPoints/PingEndpoint.cs new file mode 100644 index 0000000..bda93ec --- /dev/null +++ b/FreeTubeSync/EndPoints/PingEndpoint.cs @@ -0,0 +1,29 @@ +using FreeTubeSync.Database; +using FreeTubeSync.Model.Database; + +namespace FreeTubeSync.EndPoints; + +public static class PingEndpoint +{ + public static void MapPingEndpoints(this WebApplication app) + { + var group = app.MapGroup("ping"); + group.MapGet("/", async (CancellationToken token) => + { + await Task.Delay(10); + var dict = new { AppVersion = "0.1.3" }; + return Results.Ok(dict); + }); + + group.MapGet("/lastUpdated", async (DataContext dbContext, CancellationToken token) => + { + var log = await dbContext.GetLatestChangeAsync(token); + + if (log == null) + return Results.NotFound(); + + var dict = new { LastUpdated = log.ChangeTime }; + return Results.Ok(dict); + }); + } +} \ No newline at end of file diff --git a/FreeTubeSync/Model/Database/ChangeLog.cs b/FreeTubeSync/Model/Database/ChangeLog.cs new file mode 100644 index 0000000..8d6a7f5 --- /dev/null +++ b/FreeTubeSync/Model/Database/ChangeLog.cs @@ -0,0 +1,9 @@ +namespace FreeTubeSync.Model.Database; + +public class ChangeLog +{ + public int Id { get; set; } + public string TableName { get; set; } = string.Empty; + public string ChangeType { get; set; } = string.Empty; + public DateTime ChangeTime { get; set; } = DateTime.MinValue; +} \ No newline at end of file