121 lines
3.2 KiB
TypeScript
121 lines
3.2 KiB
TypeScript
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))
|
|
};
|