From 2c14ab4936ca8b482f6f08281d38c3fec332409c Mon Sep 17 00:00:00 2001 From: gamer147 Date: Fri, 30 Jan 2026 16:40:16 -0500 Subject: [PATCH] [FA-misc] Add GraphQL job queries with filtering and pagination --- ...ionArchive.Service.ReportingService.csproj | 2 ++ .../GraphQL/JobQueries.cs | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 FictionArchive.Service.ReportingService/GraphQL/JobQueries.cs diff --git a/FictionArchive.Service.ReportingService/FictionArchive.Service.ReportingService.csproj b/FictionArchive.Service.ReportingService/FictionArchive.Service.ReportingService.csproj index e486c8c..39d8d02 100644 --- a/FictionArchive.Service.ReportingService/FictionArchive.Service.ReportingService.csproj +++ b/FictionArchive.Service.ReportingService/FictionArchive.Service.ReportingService.csproj @@ -8,6 +8,8 @@ + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/FictionArchive.Service.ReportingService/GraphQL/JobQueries.cs b/FictionArchive.Service.ReportingService/GraphQL/JobQueries.cs new file mode 100644 index 0000000..2fbe7b8 --- /dev/null +++ b/FictionArchive.Service.ReportingService/GraphQL/JobQueries.cs @@ -0,0 +1,26 @@ +using FictionArchive.Service.ReportingService.Models; +using FictionArchive.Service.ReportingService.Services; +using HotChocolate.Authorization; +using HotChocolate.Data; + +namespace FictionArchive.Service.ReportingService.GraphQL; + +[QueryType] +public static class JobQueries +{ + [UseProjection] + [Authorize] + [UseFirstOrDefault] + public static IQueryable GetJobById( + Guid jobId, + ReportingDbContext db) + => db.Jobs.Where(j => j.Id == jobId); + + [UsePaging] + [UseProjection] + [UseFiltering] + [UseSorting] + [Authorize] + public static IQueryable GetJobs(ReportingDbContext db) + => db.Jobs; +}