1
1
import { modules , students , mentors , classes } from "./hyf.js" ;
2
-
2
+ import { mentorForModule } from "./1-find-mentors.js" ;
3
3
/**
4
4
* We would like to have a list of everyone that is currently participating in a class.
5
5
* This means the students, but also the mentors that are currently teaching the class.
@@ -11,8 +11,22 @@ import { modules, students, mentors, classes } from "./hyf.js";
11
11
*
12
12
* [{ name: 'John', role: 'student' }, { name: 'Mary', role: 'mentor' }]
13
13
*/
14
+
15
+
16
+ const filterStudentsByClassName = className => {
17
+ return students . filter ( student => {
18
+ return student . class === className && student . graduated === false } )
19
+ . map ( ( { name} ) => ( { name, role : 'student' } ) ) ;
20
+ } ;
21
+
14
22
const getPeopleOfClass = ( className ) => {
15
- // TODO complete this function
23
+ const participatingStudents = filterStudentsByClassName ( className ) ;
24
+
25
+ const specificClass = classes . find ( ( { name} ) => name === className ) ;
26
+ const participatingMentors = mentorForModule ( specificClass . currentModule )
27
+ . map ( ( { name} ) => ( { name, role :'mentor' } ) ) ;
28
+
29
+ return [ ...participatingStudents , ...participatingMentors ] ;
16
30
} ;
17
31
// You can uncomment out this line to try your function
18
32
// console.log(getPeopleOfClass('class34'));
@@ -30,7 +44,14 @@ const getPeopleOfClass = (className) => {
30
44
* }
31
45
*/
32
46
const getActiveClasses = ( ) => {
33
- // TODO complete this function
47
+ const activeClasses = classes
48
+ . filter ( ( { active} ) => { return active === true } )
49
+ . map ( ( { name} ) => ( { name} ) ) ;
50
+
51
+ return activeClasses . reduce ( ( acc , activeClass ) => {
52
+ acc [ activeClass . name ] = getPeopleOfClass ( activeClass . name ) ;
53
+ return acc ;
54
+ } , { } ) ;
34
55
} ;
35
56
// You can uncomment out this line to try your function
36
57
// console.log(getActiveClasses());
0 commit comments