decodeTracks method
Decode multiple tracks
Implementation
Future<List<Track>> decodeTracks(List<String> encoded) async {
LavalinkLogger.debug('Decoding ${encoded.length} tracks', tag: 'REST');
try {
final uri = Uri.parse('$baseUrl/v4/decodetracks');
final request = await _httpClient.postUrl(uri);
_addHeaders(request);
request.headers.set('Content-Type', 'application/json');
request.write(jsonEncode(encoded));
final response = await request.close();
final responseBody = await _readResponse(response);
if (response.statusCode != 200) {
throw LavalinkException(
'Failed to decode tracks: ${response.statusCode}',
statusCode: response.statusCode,
);
}
final json = jsonDecode(responseBody) as List;
return json.map((e) => Track.fromJson(e as Map<String, dynamic>)).toList();
} catch (e) {
if (e is LavalinkException) rethrow;
throw LavalinkException('Failed to decode tracks: $e', cause: e);
}
}