@@ -18,51 +18,26 @@ export default {
1818 const user_id = ( req as any ) . user . id ;
1919
2020 //Retrieve timetable title
21- const { timetable_title, semester, favorite = false } = req . body ;
22- if ( ! timetable_title || ! semester ) {
23- return res
24- . status ( 400 )
25- . json ( { error : "timetable title and semester are required" } ) ;
21+ const { timetable_title, semester } = req . body ;
22+ if ( ! timetable_title ) {
23+ return res . status ( 400 ) . json ( { error : "timetable title is required" } ) ;
2624 }
2725
28- // Check if a timetable with the same title already exist for this user
29- const { data : existingTimetable , error : existingTimetableError } =
30- await supabase
31- . schema ( "timetable" )
32- . from ( "timetables" )
33- . select ( "id" )
34- . eq ( "user_id" , user_id )
35- . eq ( "timetable_title" , timetable_title )
36- . maybeSingle ( ) ;
37-
38- if ( existingTimetableError ) {
39- return res . status ( 400 ) . json ( { error : existingTimetableError . message } ) ;
40- }
41-
42- if ( existingTimetable ) {
26+ if ( ! semester ) {
4327 return res
4428 . status ( 400 )
45- . json ( { error : "A timetable with this title already exist " } ) ;
29+ . json ( { error : "timetable semester is required " } ) ;
4630 }
4731
4832 //Create query to insert the user_id and timetable_title into the db
4933 let insertTimetable = supabase
5034 . schema ( "timetable" )
5135 . from ( "timetables" )
52- . insert ( [
53- {
54- user_id,
55- timetable_title,
56- semester,
57- favorite,
58- } ,
59- ] )
60- . select ( )
61- . single ( ) ;
36+ . insert ( [ { user_id, timetable_title, semester } ] )
37+ . select ( ) ;
6238
6339 const { data : timetableData , error : timetableError } =
6440 await insertTimetable ;
65-
6641 if ( timetableError ) {
6742 return res . status ( 400 ) . json ( { error : timetableError . message } ) ;
6843 }
@@ -116,11 +91,11 @@ export default {
11691 const { id } = req . params ;
11792
11893 //Retrieve timetable title
119- const { timetable_title, semester, favorite } = req . body ;
120- if ( ! timetable_title && ! semester && favorite === undefined ) {
94+ const { timetable_title, semester } = req . body ;
95+ if ( ! timetable_title && ! semester ) {
12196 return res . status ( 400 ) . json ( {
12297 error :
123- "New timetable title or semester or updated favorite status is required when updating a timetable" ,
98+ "New timetable title or semester is required when updating a timetable" ,
12499 } ) ;
125100 }
126101
@@ -137,34 +112,17 @@ export default {
137112 . eq ( "user_id" , user_id )
138113 . maybeSingle ( ) ;
139114
140- if ( timetableUserError || ! timetableUserData )
141- return res
142- . status ( 400 )
143- . json ( { error : "Timetable not found or unauthorized" } ) ;
144-
145- // Check for duplicate timetable title
146- if ( timetable_title ) {
147- const { data : existingTimetable , error : existingTimetableError } =
148- await supabase
149- . schema ( "timetable" )
150- . from ( "timetables" )
151- . select ( "*" )
152- . eq ( "user_id" , user_id )
153- . eq ( "timetable_title" , timetable_title )
154- . neq ( "id" , id )
155- . maybeSingle ( ) ;
156-
157- if ( existingTimetable ) {
158- return res
159- . status ( 400 )
160- . json ( { error : "A timetable this title already exist" } ) ;
161- }
115+ if ( timetableUserError )
116+ return res . status ( 400 ) . json ( { error : timetableUserError . message } ) ;
117+
118+ //Validate timetable validity:
119+ if ( ! timetableUserData || timetableUserData . length === 0 ) {
120+ return res . status ( 404 ) . json ( { error : "Calendar id not found" } ) ;
162121 }
163122
164123 let updateData : any = { } ;
165124 if ( timetable_title ) updateData . timetable_title = timetable_title ;
166125 if ( semester ) updateData . semester = semester ;
167- if ( favorite !== undefined ) updateData . favorite = favorite ;
168126
169127 //Update timetable title, for authenticated user only
170128 let updateTimetableQuery = supabase
@@ -173,8 +131,7 @@ export default {
173131 . update ( updateData )
174132 . eq ( "id" , id )
175133 . eq ( "user_id" , user_id )
176- . select ( )
177- . single ( ) ;
134+ . select ( ) ;
178135
179136 const { data : timetableData , error : timetableError } =
180137 await updateTimetableQuery ;
0 commit comments