get method

Future<Class> get(
  1. ClassRef ref, {
  2. bool group = false,
})

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;
}