getCourse method
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,
);
}