feat: Implement Query endpoint for Connections puzzles

This commit is contained in:
2024-12-27 09:45:53 +01:00
parent 82733693f1
commit 70ee4e076e
7 changed files with 66 additions and 118 deletions

View File

@@ -1,17 +1,29 @@
using ConnectionsAPI.Database.Repository;
using ConnectionsAPI.Models.Request;
using ConnectionsAPI.Models.Response;
namespace ConnectionsAPI.Features.Connections.Query;
public class Endpoint : Endpoint<QueryPuzzlesRequest, PagedDataResponse<ConnectionsPuzzleDTO>>
public class Endpoint(PuzzleRepository _puzzleRepository) : Endpoint<QueryPuzzlesRequest, PagedDataResponse<ConnectionsPuzzleDTO>>
{
public override void Configure()
{
Get("query");
Group<ConnectionsGroup>();
}
public override Task HandleAsync(QueryPuzzlesRequest req, CancellationToken ct)
public override async Task HandleAsync(QueryPuzzlesRequest req, CancellationToken ct)
{
return base.HandleAsync(req, ct);
bool hideSolutions = Query<bool>("hideSolutions", isRequired: false);
var puzzles = await _puzzleRepository.QueryConnectionsPuzzles(req.Page,
req.Count,
req.Year,
req.Month,
!hideSolutions);
PagedDataResponse<ConnectionsPuzzleDTO> response = new(puzzles.Page, puzzles.Count, puzzles.MaxCount, puzzles.Data.Select(ConnectionsPuzzleDTO.FromEntity).ToList());
await SendAsync(response, cancellation: ct);
}
}