@@ -27,6 +27,31 @@ class SheetsService {
2727 } ) ;
2828 }
2929
30+ sanitizeForSheet ( value ) {
31+ if ( typeof value !== 'string' ) {
32+ return value ;
33+ }
34+ if (
35+ value . startsWith ( '=' ) ||
36+ value . startsWith ( '+' ) ||
37+ value . startsWith ( '-' ) ||
38+ value . startsWith ( '@' )
39+ ) {
40+ return `'${ value } ` ;
41+ }
42+ return value ;
43+ }
44+
45+ sanitizeArrayForSheet ( values ) {
46+ if ( ! Array . isArray ( values ) ) {
47+ return '' ;
48+ }
49+ return values
50+ . filter ( ( value ) => typeof value === 'string' )
51+ . map ( ( value ) => this . sanitizeForSheet ( value ) )
52+ . join ( ', ' ) ;
53+ }
54+
3055 /**
3156 * Append check-in data to the spreadsheet
3257 * @param {Object } formData The check-in form data
@@ -49,16 +74,17 @@ class SheetsService {
4974 // Format the data for the spreadsheet
5075 const values = [ [
5176 new Date ( ) . toISOString ( ) ,
52- formData . teamMember1 || '' ,
53- formData . teamMember2 || '' ,
54- formData . teamMember3 || '' ,
55- formData . teamMember4 || '' ,
56- Array . isArray ( formData . prizeCategories ) ? formData . prizeCategories . join ( ', ' ) : '' ,
57- Array . isArray ( formData . sponsorChallenges ) ? formData . sponsorChallenges . join ( ', ' ) : '' ,
77+ this . sanitizeForSheet ( formData . teamMember1 || '' ) ,
78+ this . sanitizeForSheet ( formData . teamMember2 || '' ) ,
79+ this . sanitizeForSheet ( formData . teamMember3 || '' ) ,
80+ this . sanitizeForSheet ( formData . teamMember4 || '' ) ,
81+ this . sanitizeArrayForSheet ( formData . prizeCategories ) ,
82+ this . sanitizeArrayForSheet ( formData . sponsorChallenges ) ,
83+ this . sanitizeArrayForSheet ( formData . mlhChallenges ) ,
5884 // Array.isArray(formData.workshopsAttended) ? formData.workshopsAttended.join(', ') : '',
59- formData . discordTag || '' ,
60- formData . devpostLink || '' ,
61- formData . teamId || '' // Add teamId at the 'K' column
85+ this . sanitizeForSheet ( formData . discordTag || '' ) ,
86+ this . sanitizeForSheet ( formData . devpostLink || '' ) ,
87+ this . sanitizeForSheet ( formData . teamId || '' ) // Add teamId at the 'K' column
6288 ] ] ;
6389
6490 Logger . info ( 'Formatted data for spreadsheet:' , values ) ;
0 commit comments