feat(ticket): refine repair report and history timeline UI
This commit is contained in:
@@ -12,3 +12,4 @@ export * from './client.service';
|
||||
export * from './plan.service';
|
||||
export * from './tenant.service';
|
||||
export * from './ticket.service';
|
||||
export * from './media.service';
|
||||
|
||||
10
src/services/api/media.service.ts
Normal file
10
src/services/api/media.service.ts
Normal file
@@ -0,0 +1,10 @@
|
||||
import axiosClient from '../axios/axios';
|
||||
|
||||
export const protectedMediaService = {
|
||||
getBlob: async (url: string): Promise<Blob> => {
|
||||
const response = await axiosClient.get<Blob>(url, {
|
||||
responseType: 'blob',
|
||||
});
|
||||
return response.data;
|
||||
},
|
||||
};
|
||||
@@ -3,9 +3,11 @@ import { API_ROUTES } from '@/constants/apiRoutes';
|
||||
import type {
|
||||
AssignTicketPayload,
|
||||
AssignableTicketUsersResponse,
|
||||
AssignableTicketUsersParams,
|
||||
ReviewRepairPayload,
|
||||
SseTokenResponse,
|
||||
SubmitRepairPayload,
|
||||
SubmitRepairUploadPayload,
|
||||
TicketDetail,
|
||||
TicketListParams,
|
||||
TicketListResponse,
|
||||
@@ -36,9 +38,18 @@ export const ticketService = {
|
||||
return response.data;
|
||||
},
|
||||
|
||||
getAssignableUsers: async (): Promise<AssignableTicketUsersResponse> => {
|
||||
getAssignableUsers: async (
|
||||
params?: AssignableTicketUsersParams,
|
||||
): Promise<AssignableTicketUsersResponse> => {
|
||||
const response = await axiosClient.get<AssignableTicketUsersResponse>(
|
||||
API_ROUTES.TICKETS.ASSIGNABLE_USERS,
|
||||
{
|
||||
params: {
|
||||
skip: params?.skip ?? 0,
|
||||
limit: params?.limit ?? 20,
|
||||
search_term: params?.search_term,
|
||||
},
|
||||
},
|
||||
);
|
||||
return response.data;
|
||||
},
|
||||
@@ -72,6 +83,29 @@ export const ticketService = {
|
||||
return response.data;
|
||||
},
|
||||
|
||||
submitRepairUpload: async (
|
||||
ticketId: string,
|
||||
payload: SubmitRepairUploadPayload,
|
||||
): Promise<TicketDetail> => {
|
||||
const formData = new FormData();
|
||||
formData.append('notes', payload.notes);
|
||||
formData.append('video', payload.video);
|
||||
payload.images.forEach((image) => {
|
||||
formData.append('images', image);
|
||||
});
|
||||
|
||||
const response = await axiosClient.post<TicketDetail>(
|
||||
API_ROUTES.TICKETS.SUBMIT_REPAIR_UPLOAD(ticketId),
|
||||
formData,
|
||||
{
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data',
|
||||
},
|
||||
},
|
||||
);
|
||||
return response.data;
|
||||
},
|
||||
|
||||
reviewRepair: async (
|
||||
ticketId: string,
|
||||
payload: ReviewRepairPayload,
|
||||
|
||||
Reference in New Issue
Block a user