Re_Figma_Code/src/pages/ClosedRequests/utils/requestTransformers.ts

38 lines
1.3 KiB
TypeScript

/**
* Request data transformation utilities
*/
import { ClosedRequest } from '../types/closedRequests.types';
export function transformClosedRequest(r: any): ClosedRequest {
return {
id: r.requestNumber || r.request_number || r.requestId, // Use requestNumber as primary identifier
requestId: r.requestId, // Keep requestId for reference
displayId: r.requestNumber || r.request_number || r.requestId,
title: r.title,
description: r.description,
status: (r.status || '').toString().toLowerCase() as 'rejected' | 'closed',
priority: (r.priority || '').toString().toLowerCase() as 'express' | 'standard',
initiator: {
name: r.initiator?.displayName || r.initiator?.email || '—',
avatar: (r.initiator?.displayName || 'NA')
.split(' ')
.map((s: string) => s[0])
.join('')
.slice(0, 2)
.toUpperCase()
},
createdAt: r.submittedAt || r.createdAt || r.created_at || '—',
dueDate: r.closureDate || r.closure_date || r.closedAt || undefined,
reason: r.conclusionRemark || r.conclusion_remark,
department: r.department,
totalLevels: r.totalLevels || 0,
completedLevels: r.summary?.approvedLevels || 0,
};
}
export function transformClosedRequests(data: any[]): ClosedRequest[] {
return data.map(transformClosedRequest);
}