File tree Expand file tree Collapse file tree 2 files changed +26
-6
lines changed Expand file tree Collapse file tree 2 files changed +26
-6
lines changed Original file line number Diff line number Diff 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]));
Original file line number Diff line number Diff 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 ) {
You can’t perform that action at this time.
0 commit comments