feat: Implement Query endpoint for Connections puzzles
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user