@@ -65,6 +65,32 @@ const getAdditionalStudentEmails = (user) => {
6565 }
6666}
6767
68+ const getGuardianPhoneNumbers = ( user ) => {
69+ if ( user . code ) {
70+ return [ ] ;
71+ }
72+
73+ try {
74+ return [ ...new Set ( [ user ?. phoneNumber , user ?. guardianPhone , ...( user ?. phoneNumbers ?. filter ( p => p ?. type === 'guardian' ) . map ( p => p ?. phoneNumber ) || [ ] ) ] ) ] . filter ( s => typeof s === 'string' && s )
75+ } catch ( error ) {
76+ console . error ( 'Error getting guardian phone numbers:' , error ) ;
77+ return [ ] ;
78+ }
79+ }
80+
81+ const getTeacherPhoneNumbers = ( user ) => {
82+ if ( ! user . code ) {
83+ return [ ] ;
84+ }
85+
86+ try {
87+ return [ ...new Set ( [ user ?. phoneNumber , ...( user ?. phoneNumbers ?. filter ( p => p ?. type === 'teacher' ) . map ( p => p ?. phoneNumber ) || [ ] ) ] ) ] . filter ( s => typeof s === 'string' && s )
88+ } catch ( error ) {
89+ console . error ( 'Error getting teacher phone numbers:' , error ) ;
90+ return [ ] ;
91+ }
92+ }
93+
6894// This data gets passed through Graphql
6995// As firebase data is set client side, it can't always be trusted
7096// If a value is wrong type, it will be set to null
@@ -102,6 +128,9 @@ const getTypeSafeUser = (user) => {
102128 euclidEnrolYearGroup : validateString ( user . euclidEnrolYearGroup ) ,
103129 euclidEnrolTimestamp : validateNumber ( user . euclidEnrolTimestamp ) ,
104130
131+ guardianPhoneNumbers : getGuardianPhoneNumbers ( user ) ,
132+ teacherPhoneNumbers : getTeacherPhoneNumbers ( user ) ,
133+
105134 teacherCodes : validateStringArray ( user . teacherCode ) ,
106135 additionalStudentEmails : getAdditionalStudentEmails ( user ) ,
107136 ethnicity : validateString ( user . ethnicity ) ,
0 commit comments