Skip to content

Commit 9f2d45c

Browse files
authored
Fix fulfillRequirements not properly populated (#3464)
1 parent 637babb commit 9f2d45c

File tree

1 file changed

+6
-3
lines changed
  • scrapers/nus-v2/src/services/requisite-tree

1 file changed

+6
-3
lines changed

scrapers/nus-v2/src/services/requisite-tree/index.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ const logger = rootLogger.child({
2222
service: 'requisite-tree',
2323
});
2424

25+
const GRADE_REQUIREMENT_SEPARATOR = ':';
26+
2527
function parse(data: ModuleWithoutTree[], subLogger: Logger): PrereqTreeMap {
2628
const results: PrereqTreeMap = {};
2729

@@ -32,7 +34,6 @@ function parse(data: ModuleWithoutTree[], subLogger: Logger): PrereqTreeMap {
3234
// Filter out empty values
3335
value
3436
) {
35-
3637
const moduleLog = subLogger.child({ moduleCode });
3738

3839
const parsedValue = parseString(value, moduleLog);
@@ -57,7 +58,10 @@ export function insertRequisiteTree(modules: Module[], prerequisites: PrereqTree
5758
}
5859

5960
for (const [moduleCode, prereqs] of entries(prerequisites)) {
60-
for (const fulfillsModule of flattenTree(prereqs)) {
61+
for (const fulfillsModuleString of flattenTree(prereqs)) {
62+
const fulfillsModule = fulfillsModuleString.includes(GRADE_REQUIREMENT_SEPARATOR)
63+
? fulfillsModuleString.split(GRADE_REQUIREMENT_SEPARATOR)[0]
64+
: fulfillsModuleString;
6165
if (fulfillModulesMap[fulfillsModule]) {
6266
// Since module requires fulfillsModule, that means fulfillsModule
6367
// fulfills the requirements for module
@@ -84,7 +88,6 @@ export function insertRequisiteTree(modules: Module[], prerequisites: PrereqTree
8488
export default async function generatePrereqTree(
8589
allModules: ModuleWithoutTree[],
8690
): Promise<Module[]> {
87-
8891
const prerequisites = parse(allModules, logger);
8992
const modules = insertRequisiteTree(allModules, prerequisites);
9093

0 commit comments

Comments
 (0)