PcoServicesTagGroupQuery constructor

PcoServicesTagGroupQuery({
  1. bool includeFolder = false,
  2. bool includeTags = false,
  3. bool includeAllRelated = false,
  4. String? whereName,
  5. String? whereTagsFor,
  6. PcoServicesTagGroupFilter? filterBy,
  7. bool reverse = false,
  8. int perPage = 25,
  9. int pageOffset = 0,
  10. Map<String, String> extraParams = const {},
  11. List<PlanningCenterApiWhere>? where,
  12. Iterable<String> filter = const <String>[],
  13. String? order,
  14. Iterable<String> include = const <String>[],
})

Implementation

PcoServicesTagGroupQuery({
  /// include associated folder
  /// when true, adds `?include=folder` to url
  bool includeFolder = false,

  /// include associated tags
  /// when true, adds `?include=tags` to url
  bool includeTags = false,

  /// when true, adds `?include=folder,tags` to url parameters
  bool includeAllRelated = false,

  /// Query by `name`
  /// query on a specific name, url example: ?where[name]=string
  /// include a prefix of `<`, `<=`, `>`, `>=` to query by comparisons
  String? whereName,

  /// Query by `tags_for`
  /// query on a specific tags_for, url example: ?where[tags_for]=string
  /// include a prefix of `<`, `<=`, `>`, `>=` to query by comparisons
  String? whereTagsFor,
  PcoServicesTagGroupFilter? filterBy,

  /// reverse the ordering
  bool reverse = false,

  // direct access to super class params
  super.perPage,
  super.pageOffset,
  super.extraParams,
  super.where,
  super.filter,
  super.order,
  super.include,
}) : super() {
  if (filterBy != null) filter.add(filterString(filterBy));
  if (includeAllRelated || includeFolder) include.add('folder');
  if (includeAllRelated || includeTags) include.add('tags');

  if (whereName != null)
    where.add(PlanningCenterApiWhere.parse('name', whereName));
  if (whereTagsFor != null)
    where.add(PlanningCenterApiWhere.parse('tags_for', whereTagsFor));
}