feat: add scheduler (#30)

This commit is contained in:
Morten Olsen
2024-01-14 12:30:39 +01:00
committed by GitHub
parent eeaad68f6e
commit 2109bc3af9
18 changed files with 485 additions and 1 deletions

View File

@@ -0,0 +1,53 @@
import { z } from 'zod';
import { addScheduleSchema, findSchedulesSchema } from '../repos/repos.js';
import { publicProcedure, router } from './router.utils.js';
const add = publicProcedure.input(addScheduleSchema).mutation(async ({ input, ctx }) => {
const { runtime } = ctx;
const { repos } = runtime;
const { schedules } = repos;
const result = await schedules.add(input);
return result;
});
const find = publicProcedure.input(findSchedulesSchema).query(async ({ input, ctx }) => {
const { runtime } = ctx;
const { repos } = runtime;
const { schedules } = repos;
const result = await schedules.find(input);
return result;
});
const prepareRemove = publicProcedure.input(findSchedulesSchema).query(async ({ input, ctx }) => {
const { runtime } = ctx;
const { repos } = runtime;
const { schedules } = repos;
return await schedules.prepareRemove(input);
});
const remove = publicProcedure
.input(
z.object({
hash: z.string(),
ids: z.array(z.string()),
}),
)
.mutation(async ({ input, ctx }) => {
const { runtime } = ctx;
const { repos } = runtime;
const { artifacts } = repos;
await artifacts.remove(input.hash, input.ids);
});
const schedulesRouter = router({
add,
find,
remove,
prepareRemove,
});
export { schedulesRouter };