build static method

Map<String, dynamic> build({
  1. required String param,
  2. FilterActionType? filterActionType,
  3. String? action,
  4. dynamic value,
})

Implementation

static Map<String, dynamic> build(
    {required String param,
    FilterActionType? filterActionType,
    String? action,
    dynamic value}) {
  if (action == null) {
    return MapBuilder<String, dynamic>(multiKey: true)
        .put(param, value)
        .build();
  }
  filterActionType ??= FilterActionType.FILTER_JPA;

  switch (filterActionType) {
    case FilterActionType.FILTER_NONE:
      return MapBuilder<String, dynamic>(multiKey: true)
          .put(param, value)
          .build();
    case FilterActionType.FILTER_JPA:
      return MapBuilder<String, dynamic>(multiKey: true)
          .put(param + action, value)
          .build();
    case FilterActionType.FILTER_SQL:
    default:
      switch (action) {
        case CONTAINS:
          return MapBuilder<String, dynamic>(multiKey: true)
              .put(param, "$param LIKE '%$value%'")
              .build();
        case EQUALS:
//            num numValue = num.tryParse(value);
//            dynamic parsedValue = numValue != null ? value : "\"${value}\"";
          return MapBuilder<String, dynamic>(multiKey: true)
              .put(param, "$param = \"$value\"")
              .build();
        case IN:
          return MapBuilder<String, dynamic>(multiKey: true)
              .put(param, "$param IN $value")
              .build();
        case SPECIFIED:
          return MapBuilder<String, dynamic>(multiKey: true)
              .put(param, "$param IS ${value ? 'NOT NULL' : 'NULL'}")
              .build();
        case GREATER_OR_EQUAL_THAN:
          return MapBuilder<String, dynamic>(multiKey: true)
              .put(param, "$param >= $value")
              .build();
        case GREATER_THAN:
          return MapBuilder<String, dynamic>(multiKey: true)
              .put(param, "$param > $value")
              .build();
        case LESS_OR_EQUAL_THAN:
          return MapBuilder<String, dynamic>(multiKey: true)
              .put(param, "$param <= $value")
              .build();
        case LESS_THAN:
          return MapBuilder<String, dynamic>(multiKey: true)
              .put(param, "$param < $value")
              .build();
      }
  }
  return MapBuilder<String, dynamic>(multiKey: true).put(param, "").build();
}