Line data Source code
1 20 : enum _Filter { 2 : idGreaterThanOrEqual, 3 : idGreaterThan, 4 : idLessThanOrEqual, 5 : idLessThan, 6 : } 7 : 8 : extension _FilterX on _Filter { 9 12 : String get name => { 10 : _Filter.idGreaterThanOrEqual: 'id_gte', 11 : _Filter.idGreaterThan: 'id_gt', 12 : _Filter.idLessThanOrEqual: 'id_lte', 13 : _Filter.idLessThan: 'id_lt', 14 6 : }[this]!; 15 : } 16 : 17 : class Filter { 18 : final Map<_Filter, String> _filters = {}; 19 : 20 6 : Map<String, String> get params => 21 30 : _filters.map((key, value) => MapEntry(key.name, value)); 22 : 23 1 : Filter idGreaterThanOrEqual(String id) { 24 2 : _filters[_Filter.idGreaterThanOrEqual] = id; 25 : return this; 26 : } 27 : 28 5 : Filter idGreaterThan(String id) { 29 10 : _filters[_Filter.idGreaterThan] = id; 30 : return this; 31 : } 32 : 33 1 : Filter idLessThanOrEqual(String id) { 34 2 : _filters[_Filter.idLessThanOrEqual] = id; 35 : return this; 36 : } 37 : 38 3 : Filter idLessThan(String id) { 39 6 : _filters[_Filter.idLessThan] = id; 40 : return this; 41 : } 42 : }