getSurahContent method
returns surah data, including aya, aya translation, transliteration and tafseer
Implementation
Future<SurahContentModel> getSurahContent(
{required int surahNumber,
String? translationLang,
String? transliterationLang,
String? tafseer}) async {
if (surahNumber < 1 || surahNumber > 114) {
return SurahContentModel();
}
//call if the object still empty
if (surah.id != surahNumber) {
surah = await getSurahArabicContent(surahNumber);
}
//check if need to re-retrieve or not
if (surah.translationLang != translationLang) {
await _getAndSetTranslation(
surahNumber: surahNumber, translationLang: translationLang);
}
//check if need to re-retrieve or not
if (surah.transliterationLang != transliterationLang) {
await _getAndSetTransliteration(
surahNumber: surahNumber,
transliterationLang: transliterationLang,
);
}
//check if need to re-retrieve or not
if (surah.tafseer != tafseer) {
await _getAndSetTafseer(
surahNumber: surahNumber,
translationLang: translationLang,
tafseer: tafseer);
}
surah.translationLang = translationLang;
surah.transliterationLang = transliterationLang;
surah.tafseer = tafseer;
return surah;
}