David Li commited on
Commit
4254c1b
1 Parent(s): 2e3927c

fix: open food api changes

Browse files
Files changed (1) hide show
  1. lib/core.dart +72 -0
lib/core.dart CHANGED
@@ -10,6 +10,78 @@ Future<SearchResult> search(Map<String, String> query) {
10
  parametersList.add(SearchTerms(terms: terms.split(',')));
11
  }
12
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  ProductSearchQueryConfiguration configuration =
14
  ProductSearchQueryConfiguration(
15
  parametersList: parametersList,
 
10
  parametersList.add(SearchTerms(terms: terms.split(',')));
11
  }
12
  }
13
+ // check for withoutAddictives
14
+ if (query.containsKey('withoutAdditives')) {
15
+ // print('withoutAdditives: ${query['withoutAdditives']}');
16
+ var withoutAdditives = query['withoutAdditives'];
17
+ if (withoutAdditives != null && withoutAdditives == "true") {
18
+ parametersList.add(WithoutAdditives());
19
+ }
20
+ }
21
+
22
+ if (query.containsKey('sort')) {
23
+ // print('sort: ${query['sort']}');
24
+ var sort = query['sort'];
25
+ if (sort != null && sort.isNotEmpty) {
26
+ var option = SortOption.values.firstWhere(
27
+ (e) => e.toString() == sort,
28
+ orElse: () => SortOption.PRODUCT_NAME);
29
+ parametersList.add(SortBy(option: option));
30
+ }
31
+ }
32
+
33
+ if (query.containsKey('pnnsGroup2')) {
34
+ // print('pnnsGroup2: ${query['pnnsGroup2']}');
35
+ var pnnsGroup2 = query['pnnsGroup2'];
36
+ if (pnnsGroup2 != null && pnnsGroup2.isNotEmpty) {
37
+ var option = PnnsGroup2.values.firstWhere(
38
+ (e) => e.toString() == pnnsGroup2,
39
+ orElse: () => PnnsGroup2.PIZZA_PIES_AND_QUICHE);
40
+ parametersList.add(PnnsGroup2Filter(pnnsGroup2: option));
41
+ }
42
+ }
43
+
44
+ // page size
45
+ if (query.containsKey('size')) {
46
+ // print('size: ${query['size']}');
47
+ var size = query['size'];
48
+ if (size != null && size.isNotEmpty) {
49
+ parametersList.add(PageSize(size: int.parse(size)));
50
+ }
51
+ }
52
+
53
+ // page number
54
+ if (query.containsKey('page')) {
55
+ // print('page: ${query['page']}');
56
+ var page = query['page'];
57
+ if (page != null && page.isNotEmpty) {
58
+ parametersList.add(PageNumber(page: int.parse(page)));
59
+ }
60
+ }
61
+
62
+ // by tags
63
+ if (query.containsKey('tags')) {
64
+ // print('tags: ${query['tags']}');
65
+ var rawTags = query['tags'];
66
+ if (rawTags != null && rawTags.isNotEmpty) {
67
+ var tags = rawTags.split(',');
68
+ // iterate over tags
69
+ for (var tag in tags) {
70
+ // check for tag with value
71
+ // check tag
72
+ if (tag.contains(':')) {
73
+ var tagParts = tag.split(':');
74
+ var tagName = tagParts[0];
75
+ var tagValue = tagParts[1];
76
+ var tagType = TagFilterType.values.firstWhere(
77
+ (e) => e.toString() == tagName,
78
+ orElse: () => TagFilterType.CATEGORIES);
79
+ parametersList.add(TagFilter.fromType(tagFilterType: tagType, tagName: tagValue));
80
+ }
81
+ }
82
+ }
83
+ }
84
+
85
  ProductSearchQueryConfiguration configuration =
86
  ProductSearchQueryConfiguration(
87
  parametersList: parametersList,