toQueryString function

Future<String?> toQueryString(
  1. DataQueryBuilder? queryBuilder
)

Implementation

Future<String?> toQueryString(DataQueryBuilder? queryBuilder) async {
  if (queryBuilder == null) {
    return null;
  }

  List queryTokens = [];

  if (queryBuilder.pageSize > 0) {
    queryTokens.add('pageSize=${queryBuilder.pageSize}');
  }

  if (queryBuilder.offset > 0) {
    queryTokens.add('offset=${queryBuilder.offset}');
  }

  if (queryBuilder.properties?.isNotEmpty ?? false) {
    queryBuilder.properties!
        .map((property) => queryTokens.add('property=$property'));
  }

  if (queryBuilder.excludeProperties?.isNotEmpty ?? false) {
    queryTokens
        .add('excludeProps=${queryBuilder.excludeProperties!.join(',')}');
  }

  if (queryBuilder.whereClause?.isNotEmpty ?? false) {
    queryTokens.add('where=${queryBuilder.whereClause}');
  }

  if (queryBuilder.havingClause?.isNotEmpty ?? false) {
    queryTokens.add('having=${queryBuilder.havingClause}');
  }

  if (queryBuilder.sortBy?.isNotEmpty ?? false) {
    queryTokens.add('sortBy=${queryBuilder.sortBy!.join(',')}');
  }

  if (queryBuilder.groupBy?.isNotEmpty ?? false) {
    queryTokens.add('groupBy=${queryBuilder.groupBy!.join(',')}');
  }

  if (queryBuilder.loadRelations?.isNotEmpty ?? false) {
    queryTokens.add('loadRelations=${queryBuilder.loadRelations!.join(',')}');
  }

  if (queryBuilder.relationsPageSize != null &&
      queryBuilder.relationsPageSize! > 0) {
    queryTokens.add('relationsPageSize=${queryBuilder.relationsPageSize}');
  }

  if (queryBuilder.relationsDepth != null && queryBuilder.relationsDepth! > 0) {
    queryTokens.add('relationsDepth=${queryBuilder.relationsDepth}');
  }

  if (queryBuilder.distinct ?? false) {
    queryTokens.add('distinct=${queryBuilder.distinct}');
  }

  return queryTokens.join('&');
}