Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | 1x 1x 1x 1x 1x 1x 1x | /**
* Acquisition API Service
*
* Handles RF acquisition operations:
* - Trigger acquisition tasks
* - Check task status
* - Get acquisition history
*/
import api from '@/lib/api';
import type {
AcquisitionRequest,
AcquisitionTaskResponse,
AcquisitionStatusResponse,
} from './types';
/**
* Trigger a new RF acquisition
*/
export async function triggerAcquisition(
request: AcquisitionRequest
): Promise<AcquisitionTaskResponse> {
const response = await api.post<AcquisitionTaskResponse>(
'/api/v1/acquisition/acquire',
request
);
return response.data;
}
/**
* Get status of an acquisition task
*/
export async function getAcquisitionStatus(
taskId: string
): Promise<AcquisitionStatusResponse> {
const response = await api.get<AcquisitionStatusResponse>(
`/api/v1/acquisition/status/${taskId}`
);
return response.data;
}
/**
* Poll acquisition status until completion
*
* @param taskId - Task ID to poll
* @param onProgress - Callback for progress updates
* @param pollInterval - Polling interval in ms (default: 2000)
* @returns Final acquisition status
*/
export async function pollAcquisitionStatus(
taskId: string,
onProgress?: (status: AcquisitionStatusResponse) => void,
pollInterval: number = 2000
): Promise<AcquisitionStatusResponse> {
return new Promise((resolve, reject) => {
const poll = async () => {
try {
const status = await getAcquisitionStatus(taskId);
if (onProgress) {
onProgress(status);
}
if (status.status === 'SUCCESS' || status.status === 'FAILURE' || status.status === 'REVOKED') {
resolve(status);
} else {
setTimeout(poll, pollInterval);
}
} catch (error) {
reject(error);
}
};
poll();
});
}
const acquisitionService = {
triggerAcquisition,
getAcquisitionStatus,
pollAcquisitionStatus,
};
export default acquisitionService;
|