From c2c24d6f83a8f0b1edf2715f1b1c339620123c0d Mon Sep 17 00:00:00 2001 From: Steve Date: Sun, 4 Jan 2026 13:26:55 -0600 Subject: [PATCH] Add Undercover specific endpoints and update config to allow externally addressable endpoints --- SDG-Backend-Barracuda/Games/Undercover.cs | 37 +++++++++++++++++++ SDG-Backend-Barracuda/Program.cs | 8 +++- .../Properties/launchSettings.json | 4 +- 3 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 SDG-Backend-Barracuda/Games/Undercover.cs diff --git a/SDG-Backend-Barracuda/Games/Undercover.cs b/SDG-Backend-Barracuda/Games/Undercover.cs new file mode 100644 index 0000000..f57279f --- /dev/null +++ b/SDG-Backend-Barracuda/Games/Undercover.cs @@ -0,0 +1,37 @@ +using SDG_Backend_Barracuda.Models; + +namespace SDG_Backend_Barracuda.Games; + +public class Undercover : IEndpointRouteHandler +{ + + public static void MapEndpoints(IEndpointRouteBuilder routes) + { + var undercover = routes.MapGroup("/undercover"); + + undercover.MapGet("/decks", async (IDeckModel deckModel) => + { + var decks = await deckModel.GetAll(); + var undercoverDecks = decks.Where(d => d.GameList?.Any(g => g.Name == "Undercover") ?? false); + return Results.Ok(undercoverDecks.Select(d => new { id = d.Id, name = d.Name })); + }); + + undercover.MapGet("/deck/{deckId}", async (int deckId, IDeckModel deckModel, ICardListModel cardListModel) => + { + var deck = await deckModel.GetById(deckId); + if (deck == null) + { + return Results.NotFound(); + } + + var cardList = await cardListModel.GetById(deck.CardListId); + if (cardList == null) + { + return Results.NotFound(); + } + + var cardValues = cardList.Cards?.Select(c => c.Value) ?? []; + return Results.Ok(new { cards = cardValues }); + }); + } +} \ No newline at end of file diff --git a/SDG-Backend-Barracuda/Program.cs b/SDG-Backend-Barracuda/Program.cs index 5504bbc..f8b0e89 100644 --- a/SDG-Backend-Barracuda/Program.cs +++ b/SDG-Backend-Barracuda/Program.cs @@ -1,6 +1,7 @@ using Dapper; using Npgsql; using SDG_Backend_Barracuda.Models; +using SDG_Backend_Barracuda.Games; var builder = WebApplication.CreateBuilder(args); @@ -65,12 +66,15 @@ if (app.Environment.IsDevelopment()) { app.MapOpenApi(); } - -app.UseHttpsRedirection(); +else +{ + app.UseHttpsRedirection(); +} CardModel.MapEndpoints(app); CardListModel.MapEndpoints(app); GameModel.MapEndpoints(app); DeckModel.MapEndpoints(app); +Undercover.MapEndpoints(app); app.Run(); \ No newline at end of file diff --git a/SDG-Backend-Barracuda/Properties/launchSettings.json b/SDG-Backend-Barracuda/Properties/launchSettings.json index 0dab5c2..3b7c1f2 100644 --- a/SDG-Backend-Barracuda/Properties/launchSettings.json +++ b/SDG-Backend-Barracuda/Properties/launchSettings.json @@ -5,7 +5,7 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": false, - "applicationUrl": "http://localhost:5164", + "applicationUrl": "http://0.0.0.0:5164", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } @@ -14,7 +14,7 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": false, - "applicationUrl": "https://localhost:7075;http://localhost:5164", + "applicationUrl": "https://0.0.0.0:7075;http://0.0.0.0:5164", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" }