Skip to content
Snippets Groups Projects
  • Calen Pennington's avatar
    Allow courses api to return data incrementally · a3541d6e
    Calen Pennington authored
    Prior to this commit, the course api (/api/courses/v1/courses/)
    performed all the work necessary to return all courses available
    to the user, and then only actually returned on page's worth of those
    courses.
    
    With this change, the api now does the work incrementally, computing
    only the data needed to fetch the courses up to and including the page
    being returned. This still increases approximately linearly as
    the page number accessed being increases, but should be more cache-friendly.
    One side effect of this is that the max_page reported by pagination
    will be an overestimate (it will include pages that are removed due
    to a users access restrictions).
    
    This change also changes the sort-order of courses being returned by the
    course_api. By sorting by course-id, rather than course-number, we
    can sort in the database, rather than in Python, and defer loading data
    from the end of the list until it is requested.
    
    REVMI-90
    a3541d6e