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