48 lines
1.9 KiB
TypeScript
48 lines
1.9 KiB
TypeScript
import { prisma } from '@/libs/prisma'
|
|
import { SubmitTargetResponse } from '@/types/Survey'
|
|
import { NextRequest, NextResponse } from 'next/server'
|
|
import { loggerWrapper } from '@/libs/api-wrapper'
|
|
import { ERROR_MESSAGES } from '@/utils/common-utils'
|
|
import { HttpStatusCode } from 'axios'
|
|
|
|
// 2차점의 시공권한 user가 해당 판매점의 관리자 정보 조회
|
|
// N == 일반유저, S == 수퍼유저, B == 시공권한유저
|
|
async function getSubmissionBuilder(request: NextRequest): Promise<NextResponse> {
|
|
try {
|
|
const { searchParams } = new URL(request.url)
|
|
const id = searchParams.get('id')
|
|
|
|
if (!id) {
|
|
return NextResponse.json({ error: ERROR_MESSAGES.BAD_REQUEST }, { status: HttpStatusCode.BadRequest })
|
|
}
|
|
|
|
const query = `
|
|
OPEN SYMMETRIC KEY SYMMETRICKEY DECRYPTION BY CERTIFICATE CERTI_QSPJP;
|
|
SELECT
|
|
MCAS.AGENCY_STORE_ID AS targetStoreId
|
|
, MCAS.AGENCY_QCAST_NM AS targetStoreNm
|
|
, BQU.USER_ID AS repUserId
|
|
, CONVERT(NVARCHAR(100), DecryptByKey(BQU.EMAIL)) AS repUserEmail
|
|
, BQU.USER_AUTH_CD AS auth
|
|
FROM MS_CUST_AGENCY_STOREID MCAS WITH(NOLOCK)
|
|
LEFT OUTER JOIN BC_QM_USER BQU WITH(NOLOCK)
|
|
ON MCAS.COMP_CD = BQU.COMP_CD
|
|
AND MCAS.AGENCY_STORE_ID = BQU.AGENCY_STORE_ID
|
|
AND MCAS.DEL_YN = 'N'
|
|
WHERE MCAS.COMP_CD = '5200'
|
|
AND MCAS.AGENCY_STORE_ID = '${id}'
|
|
AND BQU.EMAIL IS NOT NULL
|
|
AND BQU.USER_AUTH_CD != 'B'
|
|
AND MCAS.DEL_YN = 'N';
|
|
CLOSE SYMMETRIC KEY SYMMETRICKEY;
|
|
`
|
|
const data: SubmitTargetResponse[] = await prisma.$queryRawUnsafe(query)
|
|
return NextResponse.json(data)
|
|
} catch (error) {
|
|
console.error('❌ API ROUTE ERROR:', error)
|
|
return NextResponse.json({ error: ERROR_MESSAGES.FETCH_ERROR }, { status: HttpStatusCode.InternalServerError })
|
|
}
|
|
}
|
|
|
|
export const GET = loggerWrapper(getSubmissionBuilder)
|