diff --git a/Controllers/QuoteController.cs b/Controllers/QuoteController.cs index 99803ef..63187ca 100644 --- a/Controllers/QuoteController.cs +++ b/Controllers/QuoteController.cs @@ -38,12 +38,28 @@ public class QuotesController : ControllerBase [ProducesResponseType(typeof(List), 200)] [ProducesResponseType(typeof(ErrorDTO), 404)] public async Task GetQuotePage(int page_no) - { - // TODO... + { + var totalQuotes = await _db.Quotes.CountAsync(); + const int PageSize = 10; + + if (page_no <= 0) + { + return NotFound(new ErrorDTO { Status = "error", error_msg = "Numer strony musi być większy niż 0." }); + } + var quotes = await _db.Quotes.Include(q => q.QuoteCategories).ThenInclude(qc => qc.Category).Include(q => q.User).Include(q => q.Image).OrderBy(q => q.Id).Skip((page_no-1)*PageSize).Take(PageSize).ToListAsync(); + + + + if (quotes == null || totalQuotes == 0) + { + return NotFound(new ErrorDTO { Status = "error", error_msg = "Brak cytatów na tej stronie." }); + } + var result = quotes.Select(q => q.ToQuoteShortDTO(_db)).ToList(); + + //return NotFound(new { status = "error", error_msg = "Not implemented" }); + return Ok(result); - return NotFound(new { status = "error", error_msg = "Not implemented" }); - - // TODO: Consider turning the quote into a DTO + } // GET /api/v1/quotes/{id} diff --git a/DTOs/ErrorDTO.cs b/DTOs/ErrorDTO.cs index f3065b6..a7dda34 100644 --- a/DTOs/ErrorDTO.cs +++ b/DTOs/ErrorDTO.cs @@ -3,5 +3,5 @@ namespace QuotifyBE.DTOs; public record class ErrorDTO { public string Status { get; set; } - public string Error_msg { get; set; } + public string error_msg { get; set; } }