obsidian-visualiser/server/tasks/validation.ts

39 lines
1.0 KiB
TypeScript

import { lt } from "drizzle-orm";
import { emailValidationTable } from "~/db/schema";
import useDatabase from '~/composables/useDatabase';
interface ValidationPayload
{
type: 'validation'
id: string
timestamp: number
}
export default defineTask({
meta: {
name: 'validation',
description: 'Add email ID to DB',
},
run({ payload, context }) {
try {
if(payload.type !== 'validation')
{
throw new Error(`Données inconnues`);
}
const _payload = payload as ValidationPayload;
const db = useDatabase();
db.delete(emailValidationTable).where(lt(emailValidationTable.timestamp, new Date())).run();
db.insert(emailValidationTable).values({ id: _payload.id, timestamp: new Date(_payload.timestamp) }).run();
return { result: true };
}
catch(e)
{
console.error(e);
return { result: false, error: e };
}
},
})