1
1
import { createClient } from '@supabase/supabase-js' ;
2
- import { TCourseId , Review , TSemesterId , TNullable , Course } from '@globals/types' ;
2
+ import {
3
+ TCourseId ,
4
+ Review ,
5
+ TSemesterId ,
6
+ TNullable ,
7
+ Course ,
8
+ } from '@globals/types' ;
3
9
import { TDatabase } from '../supabase/types' ;
4
10
import { unpackReviewData , zipToCoursesData } from './utilities/supabaseData' ;
5
11
import { TCourseStats } from './utilities/supabaseTypes' ;
@@ -20,10 +26,9 @@ const getAllReviews = async (limitCount?: number): Promise<Review[]> => {
20
26
limitCount = limitCount ?? DEFAULT_LIMIT ;
21
27
22
28
try {
23
- const { data, error } = await supabase
24
- . rpc ( 'getAllReviews' , {
25
- limit_count : limitCount ,
26
- } ) ;
29
+ const { data, error } = await supabase . rpc ( 'getAllReviews' , {
30
+ limit_count : limitCount ,
31
+ } ) ;
27
32
28
33
if ( error ) throw error ;
29
34
@@ -38,44 +43,44 @@ const getAllReviews = async (limitCount?: number): Promise<Review[]> => {
38
43
console . error ( error ) ;
39
44
return [ ] ;
40
45
}
41
- }
46
+ } ;
42
47
43
48
/**
44
49
* Get a single review from Supabase table of type `Review`.
45
50
* @param reviewId The review ID, of general form `courseId-year-semesterId-created`.
46
- * @returns {Review }
51
+ * @returns {Review }
47
52
*/
48
- const getReviewByReviewId = async ( reviewId : string ) : Promise < TNullable < Review > > => {
53
+ const getReviewByReviewId = async (
54
+ reviewId : string ,
55
+ ) : Promise < TNullable < Review > > => {
49
56
try {
50
- const { data, error } = await supabase
51
- . rpc ( 'getReviewByReviewId' , {
52
- review_id : reviewId ,
53
- } ) ;
57
+ const { data, error } = await supabase . rpc ( 'getReviewByReviewId' , {
58
+ review_id : reviewId ,
59
+ } ) ;
54
60
55
61
if ( error ) throw error ;
56
62
57
- const review : TNullable < Review > = data
58
- ? data [ 0 ] as Review
59
- : null ;
63
+ const review : TNullable < Review > = data ? ( data [ 0 ] as Review ) : null ;
60
64
61
65
return review ;
62
66
} catch ( error : any ) {
63
67
console . error ( error ) ;
64
68
return null ;
65
69
}
66
- }
70
+ } ;
67
71
68
72
/**
69
73
* Get rows from Supabase table of type `Review` for a course, returned with most recent reviews first.
70
74
* @param courseId The OMSCS course ID. If omitted, returns all courses' reviews.
71
- * @returns {Review[] }
75
+ * @returns {Review[] }
72
76
*/
73
- const getReviewsByCourseId = async ( courseId ?: TCourseId ) : Promise < Review [ ] > => {
77
+ const getReviewsByCourseId = async (
78
+ courseId ?: TCourseId ,
79
+ ) : Promise < Review [ ] > => {
74
80
try {
75
- const { data, error } = await supabase
76
- . rpc ( 'getReviewsByCourseId' , {
77
- course_id : courseId ,
78
- } ) ;
81
+ const { data, error } = await supabase . rpc ( 'getReviewsByCourseId' , {
82
+ course_id : courseId ,
83
+ } ) ;
79
84
80
85
if ( error ) throw error ;
81
86
@@ -90,7 +95,7 @@ const getReviewsByCourseId = async (courseId?: TCourseId): Promise<Review[]> =>
90
95
console . error ( error ) ;
91
96
return [ ] ;
92
97
}
93
- }
98
+ } ;
94
99
95
100
/**
96
101
* Get rows from Supabase table of type `Review` for a user, returned with most recent reviews first.
@@ -99,10 +104,9 @@ const getReviewsByCourseId = async (courseId?: TCourseId): Promise<Review[]> =>
99
104
*/
100
105
const getReviewsByUserId = async ( userId : string ) : Promise < Review [ ] > => {
101
106
try {
102
- const { data, error } = await supabase
103
- . rpc ( 'getReviewsByUserId' , {
104
- user_id : userId ,
105
- } ) ;
107
+ const { data, error } = await supabase . rpc ( 'getReviewsByUserId' , {
108
+ user_id : userId ,
109
+ } ) ;
106
110
107
111
if ( error ) throw error ;
108
112
@@ -117,7 +121,7 @@ const getReviewsByUserId = async (userId: string): Promise<Review[]> => {
117
121
console . error ( error ) ;
118
122
return [ ] ;
119
123
}
120
- }
124
+ } ;
121
125
122
126
/**
123
127
* Get aggregate data from Supabase table of type `Course` for a course. Output includes zero-row data (i.e., `numReviews === 0`).
@@ -126,10 +130,9 @@ const getReviewsByUserId = async (userId: string): Promise<Review[]> => {
126
130
*/
127
131
const getStatsByCourseId = async ( courseId ?: TCourseId ) : Promise < Course [ ] > => {
128
132
try {
129
- const { data, error } = await supabase
130
- . rpc ( 'getStatsByCourseId' , {
131
- course_id : courseId ,
132
- } ) ;
133
+ const { data, error } = await supabase . rpc ( 'getStatsByCourseId' , {
134
+ course_id : courseId ,
135
+ } ) ;
133
136
134
137
if ( error ) throw error ;
135
138
@@ -144,7 +147,7 @@ const getStatsByCourseId = async (courseId?: TCourseId): Promise<Course[]> => {
144
147
console . error ( error ) ;
145
148
return [ ] ;
146
149
}
147
- }
150
+ } ;
148
151
149
152
interface TArgsCourseStats {
150
153
courseId ?: TCourseId ;
@@ -165,12 +168,11 @@ const getStatsByCourseYearSemester = async ({
165
168
semesterId,
166
169
} : TArgsCourseStats ) : Promise < Course [ ] > => {
167
170
try {
168
- const { data, error } = await supabase
169
- . rpc ( 'getStatsByCourseYearSemester' , {
170
- course_id : courseId ,
171
- year_ : year ,
172
- semester_id : semesterId ,
173
- } ) ;
171
+ const { data, error } = await supabase . rpc ( 'getStatsByCourseYearSemester' , {
172
+ course_id : courseId ,
173
+ year_ : year ,
174
+ semester_id : semesterId ,
175
+ } ) ;
174
176
175
177
if ( error ) throw error ;
176
178
@@ -185,7 +187,7 @@ const getStatsByCourseYearSemester = async ({
185
187
console . error ( error ) ;
186
188
return [ ] ;
187
189
}
188
- }
190
+ } ;
189
191
190
192
/* --- EXPORTS --- */
191
193
0 commit comments