getLatestBackendVersion method

Future<FirewayModel> getLatestBackendVersion()

Retrieves the latest backend version from Firestore. Returns a Future of FirewayModel.

Implementation

Future<FirewayModel> getLatestBackendVersion() async {
  try {
    final query = _db
        .collection('fireway')
        .orderBy('installed_on', descending: true)
        .limit(1);
    final snapshot = await query.get();
    final list = snapshot.docs.map<Future<FirewayModel>>((document) async {
      final model = await FirewayModel.fromJson(document.data());
      model.uid = document.id;
      return model;
    }).toList();

    if (list.isNotEmpty) {
      return list.first;
    }

    throw FirewayDataServiceException(
        code: RdevCode.NotFound, message: 'Fireway Version data not found');
  } catch (err) {
    if (err is FirewayDataServiceException) {
      rethrow;
    }
    throw FirewayDataServiceException(
      message: err.toString(),
    );
  }
}