관리페이지 데이터 전송 오류 개선
Deploy EG-BIM QA Gateway / deploy (push) Successful in 56s

This commit is contained in:
root
2026-09-21 15:00:39 +09:00
parent 3c10478482
commit a1bfd047e8
3 changed files with 16 additions and 7 deletions
+12 -4
View File
@@ -189,6 +189,7 @@ function normalizeClaims(claims) {
const tenantId = claims.tenant_id || claims.tenantId || custom.tenant_id || custom.tenantId || tenantList[0]?.id || tenantList[0]?.tenantId || '';
const tenantIds = tenantList.map((tenant) => typeof tenant === 'string' ? tenant : (tenant.id || tenant.tenantId || tenant.key || '')).filter(Boolean);
if (tenantId && !tenantIds.includes(tenantId)) tenantIds.unshift(tenantId);
const primaryTenant = tenantList.find((tenant) => typeof tenant !== 'string' && (tenant.id || tenant.tenantId) === tenantId) || tenantList[0] || {};
const subject = claims.sub || claims.subject || claims.userId || claims.user_id || '';
return {
userUuid: claims.userId || claims.user_id || subject,
@@ -203,9 +204,11 @@ function normalizeClaims(claims) {
email: claims.email || profile.email || '',
name: claims.name || profile.name || claims.display_name || '',
phone: claims.phone || claims.phone_number || profilePhone,
company: custom.company || claims.company || claims.organization || '',
familyCompany: custom.familyCompany || custom.family_company || claims.familyCompany || '',
department: custom.team || custom.department || claims.department || ''
company: custom.company || claims.company || claims.organization || profile.company || '',
familyCompany: custom.familyCompany || custom.family_company || claims.familyCompany || claims.affiliation || '',
department: custom.team || custom.department || claims.department || primaryTenant.name || '',
position: custom.position || claims.position || profile.position || primaryTenant.position || primaryTenant.title || '',
grade: custom.grade || claims.grade || profile.grade || primaryTenant.grade || ''
};
}
@@ -322,6 +325,10 @@ async function createFeedback(request, env) {
requester_name: user.name || '',
requester_department: user.department || '',
requester_phone_number: user.phone,
requester_uuid: user.userUuid || requesterId,
requester_affiliation: user.familyCompany || user.company || '',
requester_position: user.position || '',
requester_grade: user.grade || '',
is_secret: input.is_secret ? 1 : 0
};
if (Array.isArray(input.images) && input.images.length) upstreamPayload.images = input.images;
@@ -353,7 +360,8 @@ async function createFeedback(request, env) {
const result = await response.json().catch(() => ({}));
if (!response.ok) {
console.error('feedback_api_rejected', response.status);
return json({ error: 'feedback_api_rejected', status: response.status }, response.status >= 500 ? 502 : response.status);
const upstreamMessage = String(result.message || result.error || result.code || '').slice(0, 240);
return json({ error: 'feedback_api_rejected', message: upstreamMessage || 'ABC API가 문의 저장을 거부했습니다.', status: response.status }, response.status >= 500 ? 502 : response.status);
}
const id = result.id || result.data?.id || result.feedback?.id;
if (!id) return json({ error: 'feedback_id_missing' }, 502);