get method
Implementation
Future<Class> get(ClassRef ref, {bool group = false}) async {
if (student.demo) {
var faker = Faker.instance;
return Class(
id: "",
name: "3bx",
students: List.generate(
10,
(i) => Student("", 0, demo: true)
..name = faker.name.fullName()
..imageId = ""));
}
var match = _cached.where((element) => element.id == ref.id).firstOrNull;
if (match != null) {
return match;
}
String url = student.buildUrl(
"subnav/members.aspx?${group ? "holdelementid" : "klasseid"}=${ref.id}&showstudents=1${group ? "&showteachers=1" : ""}");
var soup = await request(url);
List<Student> students =
extractStudents(BeautifulSoup(soup.data), student.gymId, group: group);
if (!group) {
for (var element in students) {
element.info = ref.name;
}
}
var fetchedClass = Class(id: ref.id, name: ref.name, students: students);
_cached.add(fetchedClass);
return fetchedClass;
}