getCourse method

Future<Course> getCourse(
  1. String code, {
  2. bool refresh = false,
})

Gets course catalog information by code.

Returns cached data if fresh (within TTL). Set refresh to true to bypass TTL (pull-to-refresh).

Implementation

Future<Course> getCourse(String code, {bool refresh = false}) async {
  final cached = await (_database.select(
    _database.courses,
  )..where((c) => c.code.equals(code))).getSingleOrNull();

  return fetchWithTtl(
    cached: cached,
    getFetchedAt: (c) => c.fetchedAt,
    fetchFromNetwork: () => _fetchCourseFromNetwork(code),
    refresh: refresh,
  );
}