diff --git a/Controllers/CategoryController.cs b/Controllers/CategoryController.cs
index ff65760..160ba38 100644
--- a/Controllers/CategoryController.cs
+++ b/Controllers/CategoryController.cs
@@ -29,19 +29,20 @@ public class CategoryController : ControllerBase
// GET /api/v1/categories
///
- /// Get every category
+ /// Get a page category
///
///
/// Can (and will) return an empty list if no categories are found in DB.
/// Has CORS set.
///
+ /// The page number
/// Returned on valid request
- // /// Returned when there are no categories to list
- [HttpGet]
+ /// Returned when requested page is invalid (page_no <= 0)
+ [HttpGet("{page_no}")]
[EnableCors]
[ProducesResponseType(typeof(CategoryShortDTO), 200)]
- // [ProducesResponseType(typeof(ErrorDTO), 404)]
- public async Task GetQuotePage()
+ [ProducesResponseType(typeof(ErrorDTO), 404)]
+ public async Task GetCategoryPage(int page_no = 1)
{
// The following seems to be a bad idea, so I leave it as is. ~eee4
//
@@ -49,12 +50,23 @@ public class CategoryController : ControllerBase
//
// if (totalCategories <= 0)
// {
- // return NotFound(new ErrorDTO { Status = "error", Error_msg = "No categories to list" });
+ // return NoContent(new ErrorDTO { Status = "error", Error_msg = "No categories to list" });
// }
+ const int PageSize = 10;
+
+ if (page_no <= 0)
+ {
+ return NotFound(new ErrorDTO { Status = "error", Error_msg = "Numer strony musi być większy niż 0" });
+ }
+
// Get all the categories
+ //List categories = await _db.Categories
+ // .ToListAsync();
List categories = await _db.Categories
- .ToListAsync();
+ .Skip((page_no - 1) * PageSize)
+ .Take(PageSize)
+ .ToListAsync();
// Convert them to a list of DTO
List result = categories
diff --git a/Controllers/QuoteController.cs b/Controllers/QuoteController.cs
index 89e4719..6ff2fc7 100644
--- a/Controllers/QuoteController.cs
+++ b/Controllers/QuoteController.cs
@@ -1,14 +1,11 @@
using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Authorization.Infrastructure;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Update.Internal;
using QuotifyBE.Data;
using QuotifyBE.DTOs;
using QuotifyBE.Entities;
using QuotifyBE.Mapping;
-using System.Reflection.Metadata.Ecma335;
using System.Security.Claims;
namespace QuotifyBE.Controllers;
@@ -50,7 +47,7 @@ public class QuotesController : ControllerBase
[EnableCors]
[ProducesResponseType(typeof(List), 200)]
[ProducesResponseType(typeof(ErrorDTO), 404)]
- public async Task GetQuotePage(int page_no, string? sort = "desc", [FromQuery] string? category_id = null)
+ public async Task GetQuotePage(int page_no = 1, string? sort = "desc", [FromQuery] string? category_id = null)
{
var totalQuotes = await _db.Quotes.CountAsync();
const int PageSize = 10;
@@ -197,7 +194,10 @@ public class QuotesController : ControllerBase
if ( !request.ImageUrl.StartsWith("http://")
&& !request.ImageUrl.StartsWith("https://")
&& !request.ImageUrl.StartsWith("/"))
- return StatusCode(406, new ErrorDTO { Status = "error", Error_msg = "Image URLs should point to http/https url or a local resource" });
+ return StatusCode(406, new ErrorDTO {
+ Status = "error",
+ Error_msg = "Image URLs should point to http/https url or a local resource"
+ });
image = new Image { Url = request.ImageUrl };
_db.Images.Add(image);
@@ -414,7 +414,10 @@ public class QuotesController : ControllerBase
if ( !updatedQuote.ImageUrl.StartsWith("http://")
&& !updatedQuote.ImageUrl.StartsWith("https://")
&& !updatedQuote.ImageUrl.StartsWith("/"))
- return StatusCode(406, new ErrorDTO { Status = "error", Error_msg = "Image URLs should point to http/https url or a local resource" });
+ return StatusCode(406, new ErrorDTO {
+ Status = "error",
+ Error_msg = "Image URLs should point to http/https url or a local resource"
+ });
image = new Image { Url = updatedQuote.ImageUrl };
_db.Images.Add(image);