MCPcopy Create free account
hub / github.com/OpenSIST/OpenSIST.github.io / getAllRecords

Function getAllRecords

src/Components/DataPoints/DataPoints.jsx:14–32  ·  view source on GitHub ↗
(isRefresh = false)

Source from the content-addressed store, hash-verified

12import {decodePathParam} from "../RouteUtils";
13
14async function getAllRecords(isRefresh = false) {
15 let programs = await getPrograms(isRefresh);
16 programs = Object.values(programs).flat().filter(program => program.Applicants?.length > 0);
17 const recordIDs = programs.flatMap(program => (
18 program.Applicants.map(applicant => applicant + "|" + program.ProgramID)
19 ));
20 const programOrder = new Map(programs.map((program, index) => [program.ProgramID, index]));
21 const recordsById = await getRecordByRecordIDs(recordIDs, isRefresh);
22 const missingRecordIDs = recordIDs.filter((recordId) => !isLoadedRecord(recordsById[recordId]));
23 const refreshedMissingRecords = missingRecordIDs.length > 0 && !isRefresh
24 ? await getRecordByRecordIDs(missingRecordIDs, true)
25 : {};
26 return Object.values({...recordsById, ...refreshedMissingRecords})
27 .filter(isLoadedRecord)
28 .sort((a, b) => {
29 return (programOrder.get(a.ProgramID) ?? Number.MAX_SAFE_INTEGER) -
30 (programOrder.get(b.ProgramID) ?? Number.MAX_SAFE_INTEGER);
31 });
32}
33
34export async function loader() {
35 return {records: await getAllRecords()};

Callers 2

loaderFunction · 0.85
actionFunction · 0.85

Calls 3

getProgramsFunction · 0.90
getRecordByRecordIDsFunction · 0.90
isLoadedRecordFunction · 0.85

Tested by

no test coverage detected