happens when new title is saved, or when new episode internal route is run successfully
32 lines
837 B
TypeScript
32 lines
837 B
TypeScript
import { eq } from "drizzle-orm";
|
|
|
|
import type { Env } from "~/types/env";
|
|
|
|
import { getDb } from "./db";
|
|
import { titleMessagesTable } from "./schema";
|
|
|
|
export function setTitleMessage(env: Env, titleId: number, messageId: string) {
|
|
return getDb(env)
|
|
.insert(titleMessagesTable)
|
|
.values({ titleId, messageId })
|
|
.onConflictDoUpdate({
|
|
set: { messageId },
|
|
target: [titleMessagesTable.titleId],
|
|
});
|
|
}
|
|
|
|
export function getTitleMessage(env: Env, titleId: number) {
|
|
return getDb(env)
|
|
.select()
|
|
.from(titleMessagesTable)
|
|
.where(eq(titleMessagesTable.titleId, titleId))
|
|
.then((results) => results[0].messageId);
|
|
}
|
|
|
|
export function deleteTitleMessage(env: Env, titleId: number) {
|
|
return getDb(env)
|
|
.delete(titleMessagesTable)
|
|
.where(eq(titleMessagesTable.titleId, titleId))
|
|
.run();
|
|
}
|