loadOrgs method

Future<List<Organization>?> loadOrgs()

Implementation

Future<List<Organization>?> loadOrgs() async {
  emit(state.startLoading(getUserOrgsLoading));

  try {
    final userOrgs = await provider.getOrgs();
    final organizations = userOrgs.map((ou) {
      return Organization.fromOrgUser(ou);
    }).toList();

    emit(
      state.copyWith(
        organizations: organizations,
        resetSelectedOrgData: true,
      ),
    );
    return organizations;
  } on UserOrgsLoadError catch (_) {
    emit(
      state
          .addMessage(Message.error(
        _localizations.loadUserOrgsError,
      ))
          .copyWith(organizations: const []),
    );
  } catch (e) {
    _logger.severe('Error loading user orgs: $e');

    emit(
      state
          .addMessage(Message.error(_localizations.unknownError))
          .copyWith(organizations: const []),
    );
  } finally {
    emit(state.endLoading(getUserOrgsLoading));
  }
  return null;
}