getOrCreateSemester method

Future<Semester> getOrCreateSemester(
  1. int year,
  2. int term, {
  3. bool? inCourseSemesterList,
})

Returns an existing semester row, or creates one if missing.

When inCourseSemesterList is true, marks the semester as having appeared in the course semester list API response.

Implementation

Future<Semester> getOrCreateSemester(
  int year,
  int term, {
  bool? inCourseSemesterList,
}) async {
  final companion = SemestersCompanion.insert(
    year: year,
    term: term,
    inCourseSemesterList: Value.absentIfNull(inCourseSemesterList),
  );

  return into(semesters).insertReturning(
    companion,
    onConflict: DoUpdate(
      (old) => companion,
      target: [semesters.year, semesters.term],
    ),
  );
}