diff options
Diffstat (limited to 'Controllers')
| -rw-r--r-- | Controllers/ApiFeedController.cs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Controllers/ApiFeedController.cs b/Controllers/ApiFeedController.cs new file mode 100644 index 0000000..382169e --- /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<HBContext> dbFactory, IFeedService feedService) => + this.feedService = feedService; + + [HttpPost] + public IActionResult FetchChunkAsync([FromBody] FeedRequest feedRequest) { + if(feedRequest.Count > 1000) + return BadRequest("Total number of requested items exceeds maximum"); + + return Ok(feedService.LoadChunk(feedRequest).Select(m => m.Guid).ToArray()); + } +} |
