fix: ticket detail api fallback handle

This commit is contained in:
2026-06-26 12:46:04 +05:30
parent 063f963fd4
commit 8a080cb051
9 changed files with 21 additions and 16 deletions

View File

@@ -91,7 +91,7 @@ export function TicketOverviewCard({ ticket }: { ticket: TicketDetail }) {
</OverviewField> </OverviewField>
<OverviewField label="Chainage" > <OverviewField label="Chainage" >
<MetaValue>{ticket.chainage_id || '-'}</MetaValue> <MetaValue>{ticket.chainage_name}</MetaValue>
</OverviewField> </OverviewField>
<OverviewField label="Uploaded By"> <OverviewField label="Uploaded By">

View File

@@ -88,7 +88,6 @@ function buildTicketListItem(
!event.id || !event.id ||
!event.ticket_name || !event.ticket_name ||
!event.status || !event.status ||
!event.default_defect_class ||
event.detection_count === undefined || event.detection_count === undefined ||
!event.updated_at !event.updated_at
) { ) {
@@ -101,7 +100,7 @@ function buildTicketListItem(
chainage_id: event.chainage_id ?? null, chainage_id: event.chainage_id ?? null,
chainage_name: event.chainage_name ?? null, chainage_name: event.chainage_name ?? null,
status: event.status, status: event.status,
default_defect_class: event.default_defect_class, default_defect_class: event.default_defect_class ?? null,
assigned_to_name: event.assigned_to_name ?? null, assigned_to_name: event.assigned_to_name ?? null,
detection_count: event.detection_count, detection_count: event.detection_count,
created_by_name: event.created_by_name ?? null, created_by_name: event.created_by_name ?? null,

View File

@@ -63,8 +63,8 @@ export function useTicketDetailQuery(
return useQuery({ return useQuery({
queryKey: ticketKeys.detail(ticketId ?? '', defectClass), queryKey: ticketKeys.detail(ticketId ?? '', defectClass),
queryFn: () => queryFn: () =>
ticketService.getTicketDetail(ticketId as string, defectClass as string), ticketService.getTicketDetail(ticketId as string, defectClass),
enabled: Boolean(ticketId && defectClass), enabled: Boolean(ticketId),
}); });
} }

View File

@@ -44,9 +44,11 @@ export default function TicketPage() {
const handleView = useCallback( const handleView = useCallback(
(ticket: TicketListItem) => { (ticket: TicketListItem) => {
router.push( const defectClassQuery = ticket.default_defect_class
`/ticket/${ticket.id}?defect_class=${encodeURIComponent(ticket.default_defect_class)}`, ? `?defect_class=${encodeURIComponent(ticket.default_defect_class)}`
); : '';
router.push(`/ticket/${ticket.id}${defectClassQuery}`);
}, },
[router], [router],
); );

View File

@@ -54,7 +54,8 @@ export const API_ROUTES = {
}, },
TICKETS: { TICKETS: {
BASE: '/biz/api/v1/tickets', BASE: '/biz/api/v1/tickets',
DETAIL: (id: string, defectClass: string) => DETAIL: (id: string) => `/biz/api/v1/tickets/${id}`,
CLASS_DETAIL: (id: string, defectClass: string) =>
`/biz/api/v1/tickets/${id}/class-detail?defect_class=${defectClass}`, `/biz/api/v1/tickets/${id}/class-detail?defect_class=${defectClass}`,
DEFECT_CLASSES: (id: string) => `/biz/api/v1/tickets/${id}/defect-classes`, DEFECT_CLASSES: (id: string) => `/biz/api/v1/tickets/${id}/defect-classes`,
ASSIGN: (id: string) => `/biz/api/v1/tickets/${id}/assign`, ASSIGN: (id: string) => `/biz/api/v1/tickets/${id}/assign`,

View File

@@ -35,11 +35,13 @@ export const ticketService = {
getTicketDetail: async ( getTicketDetail: async (
ticketId: string, ticketId: string,
defectClass: string, defectClass?: string,
): Promise<TicketDetail> => { ): Promise<TicketDetail> => {
const response = await axiosClient.get<TicketDetail>( const path = defectClass
API_ROUTES.TICKETS.DETAIL(ticketId, defectClass), ? API_ROUTES.TICKETS.CLASS_DETAIL(ticketId, defectClass)
); : API_ROUTES.TICKETS.DETAIL(ticketId);
const response = await axiosClient.get<TicketDetail>(path);
return response.data; return response.data;
}, },

View File

@@ -71,6 +71,7 @@ export interface TicketDetail {
ticket_name?: string; ticket_name?: string;
video_id: string; video_id: string;
chainage_id: string | null; chainage_id: string | null;
chainage_name: string | null;
status: TicketStatus; status: TicketStatus;
defect_class: string; defect_class: string;
defect_display_name: string; defect_display_name: string;

View File

@@ -14,7 +14,7 @@ export type TicketTableStatusEvent = {
chainage_id?: string | null; chainage_id?: string | null;
chainage_name?: string | null; chainage_name?: string | null;
status?: TicketStatus; status?: TicketStatus;
default_defect_class?: string; default_defect_class?: string | null;
assigned_to_name?: string | null; assigned_to_name?: string | null;
detection_count?: number; detection_count?: number;
created_by_name?: string | null; created_by_name?: string | null;

View File

@@ -12,7 +12,7 @@ export interface TicketListItem {
chainage_id: string | null; chainage_id: string | null;
chainage_name: string | null; chainage_name: string | null;
status: TicketStatus; status: TicketStatus;
default_defect_class: string; default_defect_class: string | null;
assigned_to_name: string | null; assigned_to_name: string | null;
detection_count: number; detection_count: number;
created_by_name: string | null; created_by_name: string | null;