import { baseURL } from 'request/api'; import { RecentRequest } from './const'; export const fetchAllRequests = async ( filterDateRange, filterSubsidiaries, filterReviewState, filterIncludeTests, page = 1, page_size = 20, max_accuracy = 100, ) => { const startDate = filterDateRange && filterDateRange[0] ? filterDateRange[0] : ''; const endDate = filterDateRange && filterDateRange[1] ? filterDateRange[1] : ''; let filterStr = ''; filterStr += `page=${page}&page_size=${page_size}&`; if (filterSubsidiaries) { filterStr += `subsidiary=${filterSubsidiaries}&`; } if (filterReviewState) { filterStr += `is_reviewed=${filterReviewState}&`; } if (filterIncludeTests) { filterStr += `includes_test=${filterIncludeTests}&`; } if (startDate && endDate) { filterStr += `start_date=${startDate}&end_date=${endDate}&`; } filterStr += `max_accuracy=${max_accuracy}`; const token = localStorage.getItem('sbt-token') || ''; const data = await fetch(`${baseURL}/ctel/request_list/?${filterStr}`, { method: 'GET', headers: { Authorization: `${JSON.parse(token)}`, }, }).then(async (res) => { const data = await res.json(); return data; }); return data; }; export const updateRevisedData = async (requestID: any) => { // const requestID = ; const token = localStorage.getItem('sbt-token') || ''; const result = await fetch(`${baseURL}/ctel/request/${requestID}/`, { method: 'POST', headers: { Authorization: `${JSON.parse(token)}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ request_file_results: [] }), }).catch((error) => { console.log(error); throw error; }); if (!result.ok) { throw new Error('Could not update revised data'); } }; export const updateRevisedDataByFile = async ( requestID: any, fileID: any, newRevisedData: any, ) => { // const requestID = ; const token = localStorage.getItem('sbt-token') || ''; const result = await fetch( `${baseURL}/ctel/request_image/${requestID}/${fileID}/`, { method: 'POST', headers: { Authorization: `${JSON.parse(token)}`, 'Content-Type': 'application/json', }, body: JSON.stringify(newRevisedData), }, ).catch((error) => { console.log(error); throw error; }); if (result.status != 200) { throw new Error('Could not update revised data'); } }; export const fetchRequest = async (id) => { const token = localStorage.getItem('sbt-token') || ''; const response = await fetch(`${baseURL}/ctel/request/${id}/`, { method: 'GET', headers: { Authorization: `${JSON.parse(token)}`, }, }); return await ( await response.json() ).subscription_requests[0]; }; export const addRecentRequest = (requestId: string) => { let data = localStorage.getItem('recent-request'); let requests: RecentRequest[] = []; if (data) { requests = JSON.parse(data); } else { requests = []; } // find and remove element in array that has request_id equal to requestId requests = requests.filter((request) => request.request_id !== requestId); requests.unshift({ request_id: requestId, time: new Date }) localStorage.setItem('recent-request', JSON.stringify(requests)) };