mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-05-08 06:42:39 +02:00
parent
fcfe5593b4
commit
eda3f3821f
52 changed files with 3833 additions and 71 deletions
91
apps/rowboat/app/actions/recurring-job-rules.actions.ts
Normal file
91
apps/rowboat/app/actions/recurring-job-rules.actions.ts
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
"use server";
|
||||
|
||||
import { container } from "@/di/container";
|
||||
import { ICreateRecurringJobRuleController } from "@/src/interface-adapters/controllers/recurring-job-rules/create-recurring-job-rule.controller";
|
||||
import { IListRecurringJobRulesController } from "@/src/interface-adapters/controllers/recurring-job-rules/list-recurring-job-rules.controller";
|
||||
import { IFetchRecurringJobRuleController } from "@/src/interface-adapters/controllers/recurring-job-rules/fetch-recurring-job-rule.controller";
|
||||
import { IToggleRecurringJobRuleController } from "@/src/interface-adapters/controllers/recurring-job-rules/toggle-recurring-job-rule.controller";
|
||||
import { IDeleteRecurringJobRuleController } from "@/src/interface-adapters/controllers/recurring-job-rules/delete-recurring-job-rule.controller";
|
||||
import { authCheck } from "./auth_actions";
|
||||
import { z } from "zod";
|
||||
import { Message } from "@/app/lib/types/types";
|
||||
|
||||
const createRecurringJobRuleController = container.resolve<ICreateRecurringJobRuleController>('createRecurringJobRuleController');
|
||||
const listRecurringJobRulesController = container.resolve<IListRecurringJobRulesController>('listRecurringJobRulesController');
|
||||
const fetchRecurringJobRuleController = container.resolve<IFetchRecurringJobRuleController>('fetchRecurringJobRuleController');
|
||||
const toggleRecurringJobRuleController = container.resolve<IToggleRecurringJobRuleController>('toggleRecurringJobRuleController');
|
||||
const deleteRecurringJobRuleController = container.resolve<IDeleteRecurringJobRuleController>('deleteRecurringJobRuleController');
|
||||
|
||||
export async function createRecurringJobRule(request: {
|
||||
projectId: string,
|
||||
input: {
|
||||
messages: z.infer<typeof Message>[],
|
||||
},
|
||||
cron: string,
|
||||
}) {
|
||||
const user = await authCheck();
|
||||
|
||||
return await createRecurringJobRuleController.execute({
|
||||
caller: 'user',
|
||||
userId: user._id,
|
||||
projectId: request.projectId,
|
||||
input: request.input,
|
||||
cron: request.cron,
|
||||
});
|
||||
}
|
||||
|
||||
export async function listRecurringJobRules(request: {
|
||||
projectId: string,
|
||||
cursor?: string,
|
||||
limit?: number,
|
||||
}) {
|
||||
const user = await authCheck();
|
||||
|
||||
return await listRecurringJobRulesController.execute({
|
||||
caller: 'user',
|
||||
userId: user._id,
|
||||
projectId: request.projectId,
|
||||
cursor: request.cursor,
|
||||
limit: request.limit,
|
||||
});
|
||||
}
|
||||
|
||||
export async function fetchRecurringJobRule(request: {
|
||||
ruleId: string,
|
||||
}) {
|
||||
const user = await authCheck();
|
||||
|
||||
return await fetchRecurringJobRuleController.execute({
|
||||
caller: 'user',
|
||||
userId: user._id,
|
||||
ruleId: request.ruleId,
|
||||
});
|
||||
}
|
||||
|
||||
export async function toggleRecurringJobRule(request: {
|
||||
ruleId: string,
|
||||
disabled: boolean,
|
||||
}) {
|
||||
const user = await authCheck();
|
||||
|
||||
return await toggleRecurringJobRuleController.execute({
|
||||
caller: 'user',
|
||||
userId: user._id,
|
||||
ruleId: request.ruleId,
|
||||
disabled: request.disabled,
|
||||
});
|
||||
}
|
||||
|
||||
export async function deleteRecurringJobRule(request: {
|
||||
projectId: string,
|
||||
ruleId: string,
|
||||
}) {
|
||||
const user = await authCheck();
|
||||
|
||||
return await deleteRecurringJobRuleController.execute({
|
||||
caller: 'user',
|
||||
userId: user._id,
|
||||
projectId: request.projectId,
|
||||
ruleId: request.ruleId,
|
||||
});
|
||||
}
|
||||
75
apps/rowboat/app/actions/scheduled-job-rules.actions.ts
Normal file
75
apps/rowboat/app/actions/scheduled-job-rules.actions.ts
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
"use server";
|
||||
|
||||
import { container } from "@/di/container";
|
||||
import { ICreateScheduledJobRuleController } from "@/src/interface-adapters/controllers/scheduled-job-rules/create-scheduled-job-rule.controller";
|
||||
import { IListScheduledJobRulesController } from "@/src/interface-adapters/controllers/scheduled-job-rules/list-scheduled-job-rules.controller";
|
||||
import { IFetchScheduledJobRuleController } from "@/src/interface-adapters/controllers/scheduled-job-rules/fetch-scheduled-job-rule.controller";
|
||||
import { IDeleteScheduledJobRuleController } from "@/src/interface-adapters/controllers/scheduled-job-rules/delete-scheduled-job-rule.controller";
|
||||
import { authCheck } from "./auth_actions";
|
||||
import { z } from "zod";
|
||||
import { Message } from "@/app/lib/types/types";
|
||||
|
||||
const createScheduledJobRuleController = container.resolve<ICreateScheduledJobRuleController>('createScheduledJobRuleController');
|
||||
const listScheduledJobRulesController = container.resolve<IListScheduledJobRulesController>('listScheduledJobRulesController');
|
||||
const fetchScheduledJobRuleController = container.resolve<IFetchScheduledJobRuleController>('fetchScheduledJobRuleController');
|
||||
const deleteScheduledJobRuleController = container.resolve<IDeleteScheduledJobRuleController>('deleteScheduledJobRuleController');
|
||||
|
||||
export async function createScheduledJobRule(request: {
|
||||
projectId: string,
|
||||
input: {
|
||||
messages: z.infer<typeof Message>[],
|
||||
},
|
||||
scheduledTime: string, // ISO datetime string
|
||||
}) {
|
||||
const user = await authCheck();
|
||||
|
||||
return await createScheduledJobRuleController.execute({
|
||||
caller: 'user',
|
||||
userId: user._id,
|
||||
projectId: request.projectId,
|
||||
input: request.input,
|
||||
scheduledTime: request.scheduledTime,
|
||||
});
|
||||
}
|
||||
|
||||
export async function listScheduledJobRules(request: {
|
||||
projectId: string,
|
||||
cursor?: string,
|
||||
limit?: number,
|
||||
}) {
|
||||
const user = await authCheck();
|
||||
|
||||
return await listScheduledJobRulesController.execute({
|
||||
caller: 'user',
|
||||
userId: user._id,
|
||||
projectId: request.projectId,
|
||||
cursor: request.cursor,
|
||||
limit: request.limit,
|
||||
});
|
||||
}
|
||||
|
||||
export async function fetchScheduledJobRule(request: {
|
||||
ruleId: string,
|
||||
}) {
|
||||
const user = await authCheck();
|
||||
|
||||
return await fetchScheduledJobRuleController.execute({
|
||||
caller: 'user',
|
||||
userId: user._id,
|
||||
ruleId: request.ruleId,
|
||||
});
|
||||
}
|
||||
|
||||
export async function deleteScheduledJobRule(request: {
|
||||
projectId: string,
|
||||
ruleId: string,
|
||||
}) {
|
||||
const user = await authCheck();
|
||||
|
||||
return await deleteScheduledJobRuleController.execute({
|
||||
caller: 'user',
|
||||
userId: user._id,
|
||||
projectId: request.projectId,
|
||||
ruleId: request.ruleId,
|
||||
});
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue