Fixed 267U.pre2
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import { genId } from "../../misc/gen-id.js";
|
||||
import { ScheduledNotes, Users } from "../../models/index.js";
|
||||
import { createNoteFromApiData } from "./create-from-api.js";
|
||||
export async function scheduleNote(user, data, scheduledAt) {
|
||||
return await ScheduledNotes.save({
|
||||
id: genId(),
|
||||
createdAt: new Date(),
|
||||
scheduledAt,
|
||||
userId: user.id,
|
||||
status: "scheduled",
|
||||
data,
|
||||
noteId: null,
|
||||
error: null
|
||||
});
|
||||
}
|
||||
export async function publishScheduledNote(scheduledNoteId) {
|
||||
const scheduled = await ScheduledNotes.findOneBy({
|
||||
id: scheduledNoteId
|
||||
});
|
||||
if (!scheduled) return "skip: scheduled note not found";
|
||||
if (scheduled.status !== "scheduled") return `skip: status=${scheduled.status}`;
|
||||
if (scheduled.scheduledAt.getTime() > Date.now() + 1000) return "skip: not due yet";
|
||||
await ScheduledNotes.update(scheduled.id, {
|
||||
status: "processing",
|
||||
error: null
|
||||
});
|
||||
try {
|
||||
const user = await Users.findOneByOrFail({
|
||||
id: scheduled.userId
|
||||
});
|
||||
const note = await createNoteFromApiData(user, scheduled.data, scheduled.scheduledAt);
|
||||
await ScheduledNotes.update(scheduled.id, {
|
||||
status: "published",
|
||||
noteId: note.id,
|
||||
error: null
|
||||
});
|
||||
return `published: ${note.id}`;
|
||||
} catch (err) {
|
||||
await ScheduledNotes.update(scheduled.id, {
|
||||
status: "failed",
|
||||
error: err?.message ?? String(err)
|
||||
});
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user