Started the Split

Split Json data models coming from REST Api, from the Database models
storing them in a SQLite database.
Work to re-engineer endpoints to use Database objects, and copy/update
data from the json objects.
More work is needed.
This commit is contained in:
Mario Steele 2025-07-22 17:03:33 -05:00
parent 157d46ee2e
commit 4985dc4179
36 changed files with 684 additions and 323 deletions

View file

@ -1,4 +1,6 @@
using FreeTubeSync.Model;
using FreeTubeSync.Database;
using FreeTubeSync.Model.Database;
using FreeTubeSync.Model.Json;
namespace FreeTubeSync.EndPoints;
@ -11,17 +13,23 @@ public static class HistoryEndpoint
group.MapGet("/", async (IRepository<History> repository, CancellationToken ct) =>
{
var results = await repository.GetAllAsync(ct);
return Results.Ok(results);
var jsonResults = new List<HistoryJson>();
results.MapTo(jsonResults);
return Results.Ok(jsonResults);
});
group.MapPost("/", async (IRepository<History> repository, CancellationToken ct, History history) =>
group.MapPost("/", async (IRepository<History> repository, CancellationToken ct, HistoryJson historyJson) =>
{
var results = await repository.GetByIdAsync(history._id, ct);
var results = await repository.GetByIdAsync(historyJson._id, ct);
if (results == null)
await repository.AddAsync(history, ct);
{
results = new History();
results.MapFrom(historyJson);
await repository.AddAsync(results, ct);
}
else
{
results.Update(history);
results.MapFrom(historyJson);
await repository.UpdateAsync(results, ct);
}
return Results.Ok();