33 lines
792 B
TypeScript
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));
|
|
};
|