diff --git a/src/components/pages/production/recording/RecordingTable.tsx b/src/components/pages/production/recording/RecordingTable.tsx index 2c5ecdc6..15c891bb 100644 --- a/src/components/pages/production/recording/RecordingTable.tsx +++ b/src/components/pages/production/recording/RecordingTable.tsx @@ -18,7 +18,9 @@ import RowDropdownOptions from '@/components/table/RowDropdownOptions'; import RowCollapseOptions from '@/components/table/RowCollapseOptions'; import { type CellContext } from '@tanstack/react-table'; import { type Recording } from '@/types/api/production/recording'; +import { type BaseApiResponse } from '@/types/api/api-general'; import { RecordingApi } from '@/services/api/production'; +import { isResponseSuccess, isResponseError } from '@/lib/api-helper'; import toast from 'react-hot-toast'; const RowOptionsMenu = ({ @@ -136,22 +138,56 @@ const RecordingTable = () => { const bulkApproveHandler = async () => { setIsBulkApproveLoading(true); - console.log('Approved recordings:', selectedRowIds); - setTimeout(() => { - setIsBulkApproveLoading(false); + + const approveResponse = await RecordingApi.customRequest< + BaseApiResponse + >('approvals', { + method: 'POST', + payload: { + action: 'APPROVED', + approvable_ids: selectedRowIds, + notes: 'Bulk Approved', + }, + }); + + if (isResponseSuccess(approveResponse)) { + await refreshRecordings(); setRowSelection({}); bulkApproveModal.closeModal(); - }, 1000); + toast.success(`Successfully approved ${selectedRowIds.length} recordings!`); + } + if (isResponseError(approveResponse)) { + toast.error(approveResponse?.message as string); + bulkApproveModal.closeModal(); + } + setIsBulkApproveLoading(false); }; const bulkRejectHandler = async () => { setIsBulkRejectLoading(true); - console.log('Rejected recordings:', selectedRowIds); - setTimeout(() => { - setIsBulkRejectLoading(false); + + const rejectResponse = await RecordingApi.customRequest< + BaseApiResponse + >('approvals', { + method: 'POST', + payload: { + action: 'REJECTED', + approvable_ids: selectedRowIds, + notes: 'Bulk Rejected', + }, + }); + + if (isResponseSuccess(rejectResponse)) { + refreshRecordings(); setRowSelection({}); bulkRejectModal.closeModal(); - }, 1000); + toast.success(`Successfully rejected ${selectedRowIds.length} recordings!`); + } + if (isResponseError(rejectResponse)) { + toast.error(rejectResponse?.message as string); + bulkRejectModal.closeModal(); + } + setIsBulkRejectLoading(false); }; const singleDeleteHandler = async () => {