Skip to content

Commit b29712c

Browse files
authored
Merge pull request #17 from Project-CARPI/return-course-code-name-mappings
Adjust `/course/filter/values/{filter}` endpoint to return names on top of just codes
2 parents 6f43a5d + 0298751 commit b29712c

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

app/routers/course.py

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -220,14 +220,20 @@ def search_course(
220220

221221

222222
@router.get("/filter/values/{filter}")
223-
def get_filter_values(session: SessionDep, filter: CourseFilter) -> list[str]:
224-
column = None
223+
def get_filter_values(session: SessionDep, filter: CourseFilter) -> dict[str, str]:
224+
code_col, title_col = None, None
225225
if filter is CourseFilter.subjects:
226-
column = Subject.subj_code
226+
code_col = Subject.subj_code
227+
title_col = Subject.title
227228
elif filter is CourseFilter.attributes:
228-
column = Attribute.attr_code
229+
code_col = Attribute.attr_code
230+
title_col = Attribute.title
229231
elif filter is CourseFilter.semesters:
230-
column = Course_Offering.semester
232+
result_scalars = (
233+
session.execute(select(Course_Offering.semester).distinct()).scalars().all()
234+
)
235+
return {sem: sem.capitalize() for sem in result_scalars}
231236
else:
232-
return None
233-
return session.execute(select(column).distinct()).scalars().all()
237+
return {}
238+
result_mappings = session.execute(select(code_col, title_col)).mappings().all()
239+
return {row[code_col]: row[title_col] for row in result_mappings}

0 commit comments

Comments
 (0)