Skip to content

Commit 38b4e7b

Browse files
committed
Add filters option and replace tags with filters in readme example
1 parent 844cea5 commit 38b4e7b

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,22 @@ $api->notifications->add([
8181
'data' => ['foo' => 'bar'],
8282
'isChrome' => true,
8383
'send_after' => new \DateTime('1 hour'),
84-
'tags' => [
84+
'filters' => [
8585
[
86-
'key' => 'level',
87-
'relation' => '>',
88-
'value' => '10',
86+
'field' => 'tag',
87+
'key' => 'is_vip',
88+
'relation' => '!=',
89+
'value' => 'true',
90+
],
91+
[
92+
'operator' => 'OR',
8993
],
9094
[
91-
'key' => 'madePurchase',
95+
'field' => 'tag',
96+
'key' => 'is_admin',
9297
'relation' => '=',
9398
'value' => 'true',
94-
]
99+
],
95100
],
96101
// ..other options
97102
]));

src/Notifications.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,21 @@ protected function resolve(array $data)
180180
->setAllowedTypes('include_chrome_web_reg_ids', 'array')
181181
->setDefined('app_ids')
182182
->setAllowedTypes('app_ids', 'array')
183+
->setDefined('filters')
184+
->setAllowedTypes('filters', 'array')
185+
->setNormalizer('filters', function (Options $options, array $value) {
186+
$filters = [];
187+
188+
foreach ($value as $filter) {
189+
if (isset($filter['field'])) {
190+
$filters[] = $filter;
191+
} elseif (isset($filter['operator'])) {
192+
$filters[] = ['operator' => 'OR'];
193+
}
194+
}
195+
196+
return $filters;
197+
})
183198
->setDefined('tags')
184199
->setAllowedTypes('tags', 'array')
185200
->setNormalizer('tags', function (Options $options, array $value) {

0 commit comments

Comments
 (0)