This commit is contained in:
+12
-4
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user