filter method

List<PlanInvite> filter({
  1. int? id,
  2. int? inviterId,
  3. int? inviteeId,
  4. PlanInviteStatus? status,
  5. int? planId,
})

Returns a list of all invites that match the given filters.

Implementation

List<PlanInvite> filter({
  int? id,
  int? inviterId,
  int? inviteeId,
  PlanInviteStatus? status,
  int? planId,
}) {
  if (!state.hasData) {
    log('Cannot filter invites: No data.');

    return [];
  }

  return state.requireData.where((invite) {
    if (id != null && invite.id != id) return false;
    if (inviterId != null && invite.inviterId != inviterId) return false;
    if (inviteeId != null && invite.invitedUserId != inviteeId) return false;
    if (status != null && invite.status != status) return false;
    if (planId != null && invite.planId != planId) return false;

    return true;
  }).toList();
}