Files
jh-monitor/src/actions/config.ts
2025-09-27 10:37:27 +08:00

48 lines
1.2 KiB
TypeScript

'use server'
import drizzle, { eq, gateway } from '@/lib/drizzle'
import z from 'zod'
export async function findConfigs(params: {
macaddr: string
}) {
try {
return await drizzle.query.gateway.findMany({
where: eq(gateway.macaddr, params.macaddr),
})
}
catch (e) {
throw new Error('查询配置失败: ' + (e as Error).message)
}
}
const pageConfigsParams = z.object({
macaddr: z.string().min(1, 'MAC地址不能为空').trim(),
page: z.number().min(1).default(1),
size: z.number().min(10).max(250).default(100),
})
export async function pageConfigs(rawParams: z.infer<typeof pageConfigsParams>) {
try {
const params = pageConfigsParams.parse(rawParams)
const offset = (params.page - 1) * params.size
const limit = params.size
const [data, total] = await Promise.all([
drizzle.select().from(gateway).where(eq(gateway.macaddr, params.macaddr)).offset(offset).limit(limit),
drizzle.$count(gateway, eq(gateway.macaddr, params.macaddr)),
])
return {
success: true,
data,
total,
page: params.page,
size: params.size,
}
}
catch (e) {
throw new Error('获取配置失败: ' + (e as Error).message)
}
}