This commit is contained in:
@@ -1,15 +1,12 @@
|
||||
"use server";
|
||||
|
||||
import {
|
||||
folderCreateInput,
|
||||
folderUpdateInput,
|
||||
} from "../../../../generated/prisma/models";
|
||||
import { FolderCreateInput, FolderUpdateInput } from "../../../../generated/prisma/models";
|
||||
import prisma from "../../db";
|
||||
|
||||
export async function getFoldersByOwner(owner: string) {
|
||||
export async function getFoldersByUserId(userId: number) {
|
||||
const folders = await prisma.folder.findMany({
|
||||
where: {
|
||||
owner: owner,
|
||||
userId: userId,
|
||||
},
|
||||
});
|
||||
return folders;
|
||||
@@ -26,27 +23,23 @@ export async function renameFolderById(id: number, newName: string) {
|
||||
});
|
||||
}
|
||||
|
||||
export async function getFoldersWithTotalPairsByOwner(owner: string) {
|
||||
export async function getFoldersWithTotalPairsByUserId(userId: number) {
|
||||
const folders = await prisma.folder.findMany({
|
||||
where: {
|
||||
owner: owner,
|
||||
},
|
||||
where: { userId },
|
||||
include: {
|
||||
text_pair: {
|
||||
select: {
|
||||
id: true,
|
||||
},
|
||||
_count: {
|
||||
select: { pairs: true },
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
return folders.map((folder) => ({
|
||||
return folders.map(folder => ({
|
||||
...folder,
|
||||
total_pairs: folder.text_pair.length,
|
||||
total: folder._count?.pairs ?? 0,
|
||||
}));
|
||||
}
|
||||
|
||||
export async function createFolder(folder: folderCreateInput) {
|
||||
export async function createFolder(folder: FolderCreateInput) {
|
||||
await prisma.folder.create({
|
||||
data: folder,
|
||||
});
|
||||
@@ -60,7 +53,7 @@ export async function deleteFolderById(id: number) {
|
||||
});
|
||||
}
|
||||
|
||||
export async function updateFolderById(id: number, data: folderUpdateInput) {
|
||||
export async function updateFolderById(id: number, data: FolderUpdateInput) {
|
||||
await prisma.folder.update({
|
||||
where: {
|
||||
id: id,
|
||||
@@ -69,11 +62,11 @@ export async function updateFolderById(id: number, data: folderUpdateInput) {
|
||||
});
|
||||
}
|
||||
|
||||
export async function getOwnerByFolderId(id: number) {
|
||||
export async function getUserIdByFolderId(id: number) {
|
||||
const folder = await prisma.folder.findUnique({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
});
|
||||
return folder?.owner;
|
||||
return folder?.userId;
|
||||
}
|
||||
|
||||
48
src/lib/actions/services/pairService.ts
Normal file
48
src/lib/actions/services/pairService.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
"use server";
|
||||
|
||||
import { PairCreateInput, PairUpdateInput } from "../../../../generated/prisma/models";
|
||||
import prisma from "../../db";
|
||||
|
||||
export async function createPair(data: PairCreateInput) {
|
||||
await prisma.pair.create({
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
export async function deletePairById(id: number) {
|
||||
await prisma.pair.delete({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export async function updatePairById(
|
||||
id: number,
|
||||
data: PairUpdateInput,
|
||||
) {
|
||||
await prisma.pair.update({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
export async function getPairCountByFolderId(folderId: number) {
|
||||
const count = await prisma.pair.count({
|
||||
where: {
|
||||
folderId: folderId,
|
||||
},
|
||||
});
|
||||
return count;
|
||||
}
|
||||
|
||||
export async function getPairsByFolderId(folderId: number) {
|
||||
const textPairs = await prisma.pair.findMany({
|
||||
where: {
|
||||
folderId: folderId,
|
||||
},
|
||||
});
|
||||
return textPairs;
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
"use server";
|
||||
|
||||
import {
|
||||
text_pairCreateInput,
|
||||
text_pairUpdateInput,
|
||||
} from "../../../../generated/prisma/models";
|
||||
import prisma from "../../db";
|
||||
|
||||
export async function createTextPair(data: text_pairCreateInput) {
|
||||
await prisma.text_pair.create({
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
export async function deleteTextPairById(id: number) {
|
||||
await prisma.text_pair.delete({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export async function updateTextPairById(
|
||||
id: number,
|
||||
data: text_pairUpdateInput,
|
||||
) {
|
||||
await prisma.text_pair.update({
|
||||
where: {
|
||||
id: id,
|
||||
},
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
export async function getTextPairCountByFolderId(folderId: number) {
|
||||
const count = await prisma.text_pair.count({
|
||||
where: {
|
||||
folder_id: folderId,
|
||||
},
|
||||
});
|
||||
return count;
|
||||
}
|
||||
|
||||
export async function getTextPairsByFolderId(folderId: number) {
|
||||
const textPairs = await prisma.text_pair.findMany({
|
||||
where: {
|
||||
folder_id: folderId,
|
||||
},
|
||||
});
|
||||
return textPairs;
|
||||
}
|
||||
28
src/lib/actions/services/userService.ts
Normal file
28
src/lib/actions/services/userService.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import prisma from "@/lib/db";
|
||||
import { UserCreateInput } from "../../../../generated/prisma/models";
|
||||
|
||||
export async function createUserIfNotExists(email: string, name?: string | null) {
|
||||
const user = await prisma.user.upsert({
|
||||
where: {
|
||||
email: email,
|
||||
},
|
||||
update: {},
|
||||
create: {
|
||||
email: email,
|
||||
name: name || "New User",
|
||||
} as UserCreateInput,
|
||||
});
|
||||
return user;
|
||||
}
|
||||
|
||||
export async function getUserIdByEmail(email: string) {
|
||||
const user = await prisma.user.findUnique({
|
||||
where: {
|
||||
email: email,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
},
|
||||
});
|
||||
return user ? user.id : null;
|
||||
}
|
||||
@@ -1,4 +1,10 @@
|
||||
import { PrismaClient } from "../../generated/prisma/client";
|
||||
import { PrismaPg } from "@prisma/adapter-pg";
|
||||
|
||||
const prisma = new PrismaClient();
|
||||
const adapter = new PrismaPg({
|
||||
connectionString: process.env.DATABASE_URL,
|
||||
});
|
||||
const prisma = new PrismaClient({
|
||||
adapter: adapter,
|
||||
});
|
||||
export default prisma;
|
||||
|
||||
Reference in New Issue
Block a user