summaryrefslogtreecommitdiff
path: root/lib/docu-list-rule/combo-box-settings/service.ts
diff options
context:
space:
mode:
author0-Zz-ang <s1998319@gmail.com>2025-08-08 17:15:22 +0900
committer0-Zz-ang <s1998319@gmail.com>2025-08-08 17:15:22 +0900
commit7cdedf2cf8e807eeea9134888dc9bd1586978ea8 (patch)
treee6b2eefda385ecbb6ae17494b9e05ccd8985e24d /lib/docu-list-rule/combo-box-settings/service.ts
parenta6335760fc8e56d192f002eb0c3f26d1210d07a2 (diff)
(박서영)combo box 옵션 및 number type config Add에러 수정
Diffstat (limited to 'lib/docu-list-rule/combo-box-settings/service.ts')
-rw-r--r--lib/docu-list-rule/combo-box-settings/service.ts18
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/docu-list-rule/combo-box-settings/service.ts b/lib/docu-list-rule/combo-box-settings/service.ts
index 96daefe4..7a003327 100644
--- a/lib/docu-list-rule/combo-box-settings/service.ts
+++ b/lib/docu-list-rule/combo-box-settings/service.ts
@@ -4,7 +4,7 @@ import { revalidatePath } from "next/cache"
import db from "@/db/db"
import { codeGroups, comboBoxSettings } from "@/db/schema/docu-list-rule"
import { projects } from "@/db/schema/projects"
-import { eq, sql, count } from "drizzle-orm"
+import { eq, sql } from "drizzle-orm"
import { unstable_noStore } from "next/cache"
// Control Type이 combobox인 Code Groups 목록 조회
@@ -153,7 +153,7 @@ export async function getComboBoxOptions(codeGroupId: number, input?: {
const { page = 1, perPage = 10, sort, search } = input || {}
const offset = (page - 1) * perPage
- // 기본 조건: codeGroupId
+ // 기본 조건: codeGroupId만으로 조회 (projectId는 codeGroups를 통해 간접 참조)
let whereConditions = eq(comboBoxSettings.codeGroupId, codeGroupId)
// 검색 조건
@@ -195,12 +195,12 @@ export async function getComboBoxOptions(codeGroupId: number, input?: {
remark: comboBoxSettings.remark,
createdAt: comboBoxSettings.createdAt,
updatedAt: comboBoxSettings.updatedAt,
- projectId: comboBoxSettings.projectId,
projectCode: projects.code,
projectName: projects.name,
})
.from(comboBoxSettings)
- .leftJoin(projects, eq(comboBoxSettings.projectId, projects.id))
+ .leftJoin(codeGroups, eq(comboBoxSettings.codeGroupId, codeGroups.id))
+ .leftJoin(projects, eq(codeGroups.projectId, projects.id))
.where(whereConditions)
.orderBy(orderBy)
.limit(perPage)
@@ -210,12 +210,14 @@ export async function getComboBoxOptions(codeGroupId: number, input?: {
const totalCountResult = await db
.select({ count: sql<number>`count(*)` })
.from(comboBoxSettings)
- .leftJoin(projects, eq(comboBoxSettings.projectId, projects.id))
+ .leftJoin(codeGroups, eq(comboBoxSettings.codeGroupId, codeGroups.id))
+ .leftJoin(projects, eq(codeGroups.projectId, projects.id))
.where(whereConditions)
const totalCount = totalCountResult[0]?.count || 0
return {
+ success: true,
data,
totalCount,
pageCount: Math.ceil(totalCount / perPage),
@@ -223,9 +225,11 @@ export async function getComboBoxOptions(codeGroupId: number, input?: {
} catch (error) {
console.error("Error fetching combo box options:", error)
return {
+ success: false,
data: [],
totalCount: 0,
pageCount: 0,
+ error: "Failed to fetch combo box options"
}
}
}
@@ -240,7 +244,9 @@ export async function createComboBoxOption(input: {
try {
// 해당 Code Group의 정보 가져오기
const codeGroup = await db
- .select({ description: codeGroups.description })
+ .select({
+ description: codeGroups.description
+ })
.from(codeGroups)
.where(eq(codeGroups.id, input.codeGroupId))
.limit(1)