moviebox/src/lib/db/index.ts

33 lines
792 B
TypeScript

"use server";
import { drizzle } from "drizzle-orm/libsql";
import { movies } from "./schema";
import { eq } from "drizzle-orm";
import { Movie } from "@/types/global";
const db = drizzle(process.env.DB_FILE_NAME!);
export const getMovies = async () => {
return await db.select().from(movies).$withCache();
};
export const addMovieToDB = async (movie: Movie) => {
await db
.insert(movies)
.values({
...movie,
genre_ids: JSON.stringify(movie.genre_ids),
})
.onConflictDoNothing();
};
export const deleteMovieFromDB = async (id: number) => {
await db.delete(movies).where(eq(movies.id, id));
};
export const updateMovieInDB = async (
movieId: number,
movie: Partial<Movie>
) => {
await db.update(movies).set(movie).where(eq(movies.id, movieId));
};