queryPassage function
Query a provider for a bible passage.
Bible
will use the recommended/default query
provider if the provider is not specified in the optional
parameter. If an adequet provider is not found to supply
the version request or if the reference is invalid, a
null value will be returned.
Implementation
Future<PassageQuery>? queryPassage(String queryReference,
{String? version,
BibleProvider? provider,
Map<String, String>? parameters,
useParser = true,
String? providerName,
String? key}) {
if (provider == null && providerName != null) {
provider = getProvider(providerName);
}
if (version != null && provider == null) {
provider ??= getDefaultProvider(version);
} else if (provider == null) {
provider = getProvider('getbible');
}
if (provider == null) {
return null;
}
BibleReference? ref;
if (useParser) {
ref = parseReference(queryReference);
}
// Tries to parse the reference, if unable just use the original query.
if (ref == null || !ref.isValid) {
ref = Reference(queryReference);
}
key ??= getKey(provider.name);
if (provider.requiresKey && key == null) {
return null;
}
parameters ??= {};
return provider.getPassage(ref,
parameters: parameters, key: key, version: version);
}