using System.Data; using FictionArchive.Service.SchedulerService.Models; using FictionArchive.Service.SchedulerService.Services; using HotChocolate.Authorization; using HotChocolate.Types; using Quartz; namespace FictionArchive.Service.SchedulerService.GraphQL; public class Mutation { [Error] [Error] [Authorize(Roles = "admin")] public async Task ScheduleEventJob(string key, string description, string eventType, string eventData, string cronSchedule, JobManagerService jobManager) { return await jobManager.ScheduleEventJob(key, description, eventType, eventData, cronSchedule); } [Error] [Authorize(Roles = "admin")] public async Task RunJob(string jobKey, JobManagerService jobManager) { return await jobManager.TriggerJob(jobKey); } [Error] [Authorize(Roles = "admin")] public async Task DeleteJob(string jobKey, JobManagerService jobManager) { bool deleted = await jobManager.DeleteJob(jobKey); if (!deleted) { throw new KeyNotFoundException($"Job with key '{jobKey}' was not found"); } return true; } }