performSelect method

dynamic performSelect(
  1. SupabaseClient client
)

Implementation

dynamic performSelect(SupabaseClient client) {
  if (select == null) throw Exception('Query is null');
  var queryObj = client.from(table).select(
        select!,
      );
  if (limit != null) {
    if (offset != null) {
      queryObj = queryObj..range(offset!, limit!);
    } else {
      queryObj = queryObj..limit(limit!);
    }
  }
  for (final f in filters) {
    if (f.type == SupasetFilterTypes.eq) {
      queryObj = queryObj..eq(f.column, f.value);
    }
    if (f.type == SupasetFilterTypes.gt) {
      queryObj = queryObj..gt(f.column, f.value);
    }
    if (f.type == SupasetFilterTypes.gte) {
      queryObj = queryObj..gte(f.column, f.value);
    }
    if (f.type == SupasetFilterTypes.lt) {
      queryObj = queryObj..lt(f.column, f.value);
    }
    if (f.type == SupasetFilterTypes.lte) {
      queryObj = queryObj..lte(f.column, f.value);
    }
    if (f.type == SupasetFilterTypes.like) {
      queryObj = queryObj..like(f.column, f.value);
    }
    if (f.type == SupasetFilterTypes.ilike) {
      queryObj = queryObj..ilike(f.column, f.value);
    }
  }
  if (isCount) {
    queryObj = queryObj..count(CountOption.exact);
  }
  if (single) {
    return queryObj.single();
  }
  return queryObj;
}