From c51ff4e755f009ca0bc8e935a92c04e583c4ee8a Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Tue, 17 Mar 2026 03:04:36 +1100 Subject: Initial commit --- Controllers/ApiFeedController.cs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Controllers/ApiFeedController.cs (limited to 'Controllers/ApiFeedController.cs') diff --git a/Controllers/ApiFeedController.cs b/Controllers/ApiFeedController.cs new file mode 100644 index 0000000..068cc17 --- /dev/null +++ b/Controllers/ApiFeedController.cs @@ -0,0 +1,25 @@ +using HyperBooru.ApiModels; +using HyperBooru.Services; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace HyperBooru.Controllers; + +[ApiController] +[Authorize] +[Route("/api/feed")] +public class ApiFeedController : Controller { + private IFeedService feedService; + + public ApiFeedController(IDbContextFactory dbFactory, IFeedService feedService) => + this.feedService = feedService; + + [HttpPost] + public IActionResult FetchChunkAsync([FromBody] FeedRequest feedRequest) { + if(feedRequest.Count > 1000) + throw new ApiModels.ArgumentException("Total number of requested items exceeds maximum"); + + return Ok(feedService.LoadChunk(feedRequest).Select(m => m.Guid).ToArray()); + } +} -- cgit v1.3