using HyperBooru.ApiModels; using HyperBooru.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; namespace HyperBooru.Controllers; [ApiController] [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()); } }