getPlaylist method

Future<DaapObject> getPlaylist(
  1. int databaseId,
  2. int playlistId, {
  3. int? sessionId,
  4. List<String> metaCodes = playlistQueryDefaultMetaCodes,
})

Get database playlist from the server.

Throws DaapImproperlyConfiguredException in case of calling without supplied sessionId before connect call.

Implementation

Future<DaapObject> getPlaylist(int databaseId, int playlistId,
    {int? sessionId,
    List<String> metaCodes = playlistQueryDefaultMetaCodes}) async {
  var url = _baseUrl;
  if (sessionId != null) {
    url = url.replace(
        path: Interpolator(playlistUrlPath)({
          "databaseId": databaseId.toString(),
          "playlistId": playlistId.toString()
        }),
        queryParameters: {
          "session-id": sessionId.toString(),
          "meta": getRequestMeta(metaCodes),
        });
  } else {
    if (sessionInfo != null) {
      return await getPlaylist(databaseId, playlistId,
          sessionId: sessionInfo!.getAtom(dmapCodeDmapSessionId),
          metaCodes: metaCodes);
    } else {
      throw DaapImproperlyConfiguredException(
          // ignore: lines_longer_than_80_chars
          "Can't get 'sessionId' from 'sessionInfo'. First, try to connect to the server.");
    }
  }
  return DaapObject(await request(url));
}