File tree Expand file tree Collapse file tree 1 file changed +22
-30
lines changed
course-matrix/backend/src/constants Expand file tree Collapse file tree 1 file changed +22
-30
lines changed Original file line number Diff line number Diff line change 1+ const codeToYearMap = new Map < string , number > ( [
2+ [ "A" , 1 ] ,
3+ [ "B" , 2 ] ,
4+ [ "C" , 3 ] ,
5+ [ "D" , 4 ] ,
6+ ] ) ;
7+
8+ const yearToCodeMap = new Map < number , string > ( [
9+ [ 1 , "A" ] ,
10+ [ 2 , "B" ] ,
11+ [ 3 , "C" ] ,
12+ [ 4 , "D" ] ,
13+ ] ) ;
14+
115export const codeToYear = ( courseCode : string ) => {
216 const letter = courseCode . slice ( 3 , 4 ) ;
3- switch ( letter ) {
4- case "A" :
5- return 1 ;
6- break ;
7- case "B" :
8- return 2 ;
9- break ;
10- case "C" :
11- return 3 ;
12- break ;
13- case "D" :
14- return 4 ;
15- break ;
16- default :
17- break ;
17+ const year = codeToYearMap . get ( letter ) ;
18+ if ( year === undefined ) {
19+ throw new Error ( `Invalid course code: ${ courseCode } ` ) ;
1820 }
21+ return year ;
1922} ;
2023
2124export const yearToCode = ( year : number ) => {
22- switch ( year ) {
23- case 1 :
24- return "A" ;
25- break ;
26- case 2 :
27- return "B" ;
28- break ;
29- case 3 :
30- return "C" ;
31- break ;
32- case 4 :
33- return "D" ;
34- break ;
35- default :
36- break ;
25+ const letter = yearToCodeMap . get ( year ) ;
26+ if ( letter === undefined ) {
27+ throw new Error ( `Invalid year: ${ year } ` ) ;
3728 }
29+ return letter ;
3830} ;
3931
4032// true - notifications will be tested by mocking current Date
You can’t perform that action at this time.
0 commit comments