Skip to content

Conversation

@ramonechen
Copy link
Contributor

What?

Changes the behavior of the course search endpoint such that it returns a list of general semesters in which the course has been offered in, as opposed to a list of all specific semesters and years in which the course has been offered in the past.

Also introduces a change that array-ifies both semester and attribute fields in the course search endpoint return value.

Closes #7.

Why?

See #7.

How?

We changed one line in the monster course search query and used some basic Python code to array-ify values.

Testing?

It seems to work via testing on Postman.

Anything Else?

Have a nice day.

ramonechen and others added 2 commits November 14, 2025 17:43
Updated the group_concat for semesters to only include distinct semester values, removing concatenation with year. This simplifies the 'sem_list' output in the course search query.

Co-Authored-By: Jack Zgombic <[email protected]>
@jzgom067 jzgom067 merged commit 6f43a5d into main-preview Nov 14, 2025
6 checks passed
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR modifies the course search endpoint to return general semester names (e.g., "Fall", "Spring") instead of specific semester-year combinations (e.g., "Fall 2023"), and converts the sem_list and attr_list fields from comma-separated strings to arrays.

  • Modified SQL query to return only distinct semester names without years
  • Added post-processing logic to convert comma-separated strings to arrays
  • Updated return type annotation to reflect the array changes

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

attrFilters: str | None = None,
semFilters: str | None = None,
) -> list[dict[str, str | int | None]]:
) -> list[dict[str, str | int | list[str]]]:
Copy link

Copilot AI Nov 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The return type annotation is incomplete. It should include None as a possible type for the dictionary values since subj_code, code_num, title, desc_text, credit_min, and credit_max can potentially be None. Consider updating to: list[dict[str, str | int | list[str] | None]]

Suggested change
) -> list[dict[str, str | int | list[str]]]:
) -> list[dict[str, str | int | list[str] | None]]:

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

API Related to the API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants