getSingleFromSeriesAndPlanAndLive static method

Future<PcoServicesItem?> getSingleFromSeriesAndPlanAndLive(
  1. String seriesId,
  2. String planId,
  3. String liveId,
  4. String id, {
  5. PcoServicesItemQuery? query,
  6. bool includeAllRelated = false,
  7. bool includeArrangement = false,
  8. bool includeItemNotes = false,
  9. bool includeItemTimes = false,
  10. bool includeKey = false,
  11. bool includeMedia = false,
  12. bool includeSelectedAttachment = false,
  13. bool includeSong = false,
})

Will get a single PcoServicesItem object using a path like this: /services/v2/series/$seriesId/plans/$planId/live/$liveId/items/[id]

Additional options may be specified by using the query argument, but some query options are also available as boolean flags in this function call too.

Implementation

static Future<PcoServicesItem?> getSingleFromSeriesAndPlanAndLive(
  String seriesId,
  String planId,
  String liveId,
  String id, {
  PcoServicesItemQuery? query,
  bool includeAllRelated = false,
  bool includeArrangement = false,
  bool includeItemNotes = false,
  bool includeItemTimes = false,
  bool includeKey = false,
  bool includeMedia = false,
  bool includeSelectedAttachment = false,
  bool includeSong = false,
}) async {
  query ??= PcoServicesItemQuery();
  if (includeAllRelated) query.include.addAll(PcoServicesItem.canInclude);
  if (includeArrangement) query.include.add('arrangement');
  if (includeItemNotes) query.include.add('item_notes');
  if (includeItemTimes) query.include.add('item_times');
  if (includeKey) query.include.add('key');
  if (includeMedia) query.include.add('media');
  if (includeSelectedAttachment) query.include.add('selected_attachment');
  if (includeSong) query.include.add('song');
  var url =
      '/services/v2/series/$seriesId/plans/$planId/live/$liveId/items/$id';
  var retval = await PcoCollection.fromApiCall<PcoServicesItem>(url,
      query: query, apiVersion: kApiVersion);
  return retval.items.isEmpty ? null : retval.items.first;
}