init: SR System — Helpdesk & ITAM Portal
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
import apiClient from './apiClient';
|
||||
import type { ApiResponse, Page, IssueTicket, TicketComment } from '@/types';
|
||||
|
||||
export interface TicketFilterParams {
|
||||
category?: string;
|
||||
priority?: string;
|
||||
status?: string;
|
||||
searchKeyword?: string;
|
||||
page?: number;
|
||||
size?: number;
|
||||
}
|
||||
|
||||
const ticketService = {
|
||||
getTickets(params?: TicketFilterParams) {
|
||||
return apiClient.get<ApiResponse<Page<IssueTicket>>>('/tickets', { params });
|
||||
},
|
||||
|
||||
getTicket(ticketId: number) {
|
||||
return apiClient.get<ApiResponse<IssueTicket>>(`/tickets/${ticketId}`);
|
||||
},
|
||||
|
||||
createTicket(data: Partial<IssueTicket>) {
|
||||
return apiClient.post<ApiResponse<IssueTicket>>('/tickets', data);
|
||||
},
|
||||
|
||||
updateStatus(ticketId: number, status: string, assigneeId?: number) {
|
||||
return apiClient.put<ApiResponse<IssueTicket>>(`/tickets/${ticketId}/status`, null, {
|
||||
params: { status, assigneeId },
|
||||
});
|
||||
},
|
||||
|
||||
resolveTicket(ticketId: number, resolutionNote: string) {
|
||||
return apiClient.put<ApiResponse<IssueTicket>>(`/tickets/${ticketId}/resolve`, { resolutionNote });
|
||||
},
|
||||
|
||||
deleteTicket(ticketId: number) {
|
||||
return apiClient.delete<ApiResponse<void>>(`/tickets/${ticketId}`);
|
||||
},
|
||||
|
||||
getComments(ticketId: number) {
|
||||
return apiClient.get<ApiResponse<TicketComment[]>>(`/tickets/${ticketId}/comments`);
|
||||
},
|
||||
|
||||
addComment(ticketId: number, commentText: string, attachedFileUrl?: string) {
|
||||
return apiClient.post<ApiResponse<TicketComment>>(`/tickets/${ticketId}/comments`, {
|
||||
commentText,
|
||||
attachedFileUrl,
|
||||
});
|
||||
},
|
||||
|
||||
deleteComment(ticketId: number, commentId: number) {
|
||||
return apiClient.delete<ApiResponse<void>>(`/tickets/${ticketId}/comments/${commentId}`);
|
||||
},
|
||||
};
|
||||
|
||||
export default ticketService;
|
||||
Reference in New Issue
Block a user