queryGenres method

Future<List<Map<String, dynamic>>> queryGenres({
  1. QueryOptions? options,
})

Query genre information

Implementation

Future<List<Map<String, dynamic>>> queryGenres(
    {QueryOptions? options}) async {
  try {
    // Check permissions first
    final permissionResult =
        await _checkPermissionsUseCase.call(MediaType.audio);
    if (!permissionResult.isGranted) {
      throw MediaErrorFactory.permissionDenied(
        missingPermissions: permissionResult.missingPermissions ?? [],
        status: permissionResult.status,
        message: 'Audio permissions not granted: ${permissionResult.message}',
      );
    }

    return await _repository.queryGenres(options: options);
  } catch (e) {
    if (e is MediaError) {
      rethrow;
    }
    throw MediaErrorFactory.queryError(
      queryType: 'genre',
      message: 'Failed to query genres: ${e.toString()}',
    );
  }
}