43 lines
No EOL
1.1 KiB
TypeScript
43 lines
No EOL
1.1 KiB
TypeScript
import { query as queryAuthDb } from '../../../utils/db'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const logId = getRouterParam(event, 'logid')
|
|
|
|
if (!logId) {
|
|
throw createError({
|
|
statusCode: 400,
|
|
statusMessage: 'Log ID parameter is required.'
|
|
})
|
|
}
|
|
|
|
try {
|
|
let result = await queryAuthDb(
|
|
`SELECT * FROM audit_logs WHERE log_id = $1 LIMIT 1`,
|
|
[logId]
|
|
)
|
|
|
|
if (result.rows.length === 0) {
|
|
result = await queryAuthDb(
|
|
`SELECT * FROM ban_logs WHERE log_id = $1 LIMIT 1`,
|
|
[logId]
|
|
)
|
|
}
|
|
|
|
if (result.rows.length === 0) {
|
|
throw createError({
|
|
statusCode: 404,
|
|
statusMessage: `Audit log with ID #${logId} was not found.`
|
|
})
|
|
}
|
|
|
|
return result.rows[0]
|
|
} catch (err: any) {
|
|
if (err.statusCode === 404) throw err
|
|
|
|
console.error('Failed to fetch single audit log:', err.message)
|
|
throw createError({
|
|
statusCode: 500,
|
|
statusMessage: `Database error: ${err.message}`
|
|
})
|
|
}
|
|
}) |