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 | 45x 409x 672x 12023x 409x 409x 45x 66x 326x 326x 326x 4140x 66x 409x 409x 409x 409x 66x | import { first } from "remeda";
import { PadgRandomAssignResult } from "server/types/assignmentTypes";
import { logger } from "server/utils/logger";
import {
AssignmentSignup,
UserAssignmentResult,
} from "shared/types/models/result";
import { User } from "shared/types/models/user";
const getAssignmentSignup = (
assignResults: PadgRandomAssignResult[],
attendee: User,
): AssignmentSignup | null => {
const foundSignup = attendee.lotterySignups.find((lotterySignup) => {
return assignResults.find(
(assignResult) =>
(assignResult.id === attendee.groupCode ||
assignResult.id === attendee.serial) &&
assignResult.assignment === lotterySignup.programItemId,
);
});
Iif (!foundSignup) {
return null;
}
return {
programItemId: foundSignup.programItemId,
priority: foundSignup.priority,
signedToStartTime: foundSignup.signedToStartTime,
};
};
export const formatResults = (
assignResults: PadgRandomAssignResult[],
attendeeGroups: readonly User[][],
): readonly UserAssignmentResult[] => {
const selectedAttendees = attendeeGroups
.filter((attendeeGroup) => {
const firstMember = first(attendeeGroup);
Iif (!firstMember) {
logger.error(
new Error("Assignment formatResults: error getting first member"),
);
return false;
}
return assignResults.find(
(assignResult) =>
(assignResult.id === firstMember.groupCode ||
assignResult.id === firstMember.serial) &&
assignResult.assignment !== -1,
);
})
.flat();
const results = selectedAttendees.reduce<UserAssignmentResult[]>(
(acc, attendee) => {
const assignmentSignup = getAssignmentSignup(assignResults, attendee);
Eif (assignmentSignup) {
acc.push({
username: attendee.username,
assignmentSignup,
});
}
return acc;
},
[],
);
return results;
};
|