summaryrefslogtreecommitdiff
path: root/lib/information/repository.ts
diff options
context:
space:
mode:
Diffstat (limited to 'lib/information/repository.ts')
-rw-r--r--lib/information/repository.ts40
1 files changed, 33 insertions, 7 deletions
diff --git a/lib/information/repository.ts b/lib/information/repository.ts
index c7c000b1..c3b82d4a 100644
--- a/lib/information/repository.ts
+++ b/lib/information/repository.ts
@@ -1,13 +1,14 @@
import { asc, desc, eq, and } from "drizzle-orm"
import db from "@/db/db"
-import {
- pageInformation,
+import {
+ pageInformation,
informationAttachments,
- type PageInformation,
+ type PageInformation,
type NewPageInformation,
type InformationAttachment,
type NewInformationAttachment
} from "@/db/schema/information"
+import { users } from "@/db/schema/users"
@@ -22,10 +23,22 @@ export async function updateInformation(id: number, data: Partial<NewPageInforma
return result[0] || null
}
-// 인포메이션과 첨부파일 함께 조회
+// 인포메이션과 첨부파일 함께 조회 (사용자 정보 포함)
export async function getInformationWithAttachments(id: number) {
const information = await db
- .select()
+ .select({
+ id: pageInformation.id,
+ pagePath: pageInformation.pagePath,
+ pageName: pageInformation.pageName,
+ informationContent: pageInformation.informationContent,
+ isActive: pageInformation.isActive,
+ createdBy: pageInformation.createdBy,
+ createdAt: pageInformation.createdAt,
+ updatedBy: pageInformation.updatedBy,
+ updatedAt: pageInformation.updatedAt,
+ updatedByName: users.name,
+ updatedByEmail: users.email,
+ })
.from(pageInformation)
.where(eq(pageInformation.id, id))
.limit(1)
@@ -44,11 +57,24 @@ export async function getInformationWithAttachments(id: number) {
}
}
-// 페이지 경로로 인포메이션과 첨부파일 함께 조회
+// 페이지 경로로 인포메이션과 첨부파일 함께 조회 (사용자 정보 포함)
export async function getInformationByPagePathWithAttachments(pagePath: string) {
const information = await db
- .select()
+ .select({
+ id: pageInformation.id,
+ pagePath: pageInformation.pagePath,
+ pageName: pageInformation.pageName,
+ informationContent: pageInformation.informationContent,
+ isActive: pageInformation.isActive,
+ createdBy: pageInformation.createdBy,
+ createdAt: pageInformation.createdAt,
+ updatedBy: pageInformation.updatedBy,
+ updatedAt: pageInformation.updatedAt,
+ updatedByName: users.name,
+ updatedByEmail: users.email,
+ })
.from(pageInformation)
+ .leftJoin(users, eq(pageInformation.updatedBy, users.id))
.where(and(
eq(pageInformation.pagePath, pagePath),
eq(pageInformation.isActive, true)