36 lines
No EOL
951 B
TypeScript
36 lines
No EOL
951 B
TypeScript
import { queryNnas } from '../../utils/nnasDb'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const body = await readBody(event)
|
|
const usernameInput = body?.sfid?.trim()
|
|
|
|
if (!usernameInput) {
|
|
throw createError({ statusCode: 400, statusMessage: 'Username is required' })
|
|
}
|
|
|
|
try {
|
|
const nnasResult = await queryNnas(
|
|
`SELECT pid, username FROM users WHERE LOWER(username) = LOWER($1) LIMIT 1`,
|
|
[usernameInput]
|
|
)
|
|
|
|
if (nnasResult.rows.length === 0) {
|
|
throw createError({
|
|
statusCode: 404,
|
|
statusMessage: `Account "${usernameInput}" was not found.`
|
|
})
|
|
}
|
|
|
|
return {
|
|
pid: nnasResult.rows[0].pid,
|
|
username: nnasResult.rows[0].username
|
|
}
|
|
} catch (error: any) {
|
|
if (error.statusCode) throw error
|
|
console.error('[NNAS Lookup Error]:', error)
|
|
throw createError({
|
|
statusCode: 500,
|
|
statusMessage: 'Failed to look up NNAS profile'
|
|
})
|
|
}
|
|
}) |