@@ -66,27 +66,43 @@ public function getMany(Request $request): JsonResponse
66
66
{
67
67
$ context = $ this ->getRequest ()->getContext ();
68
68
69
- $ q = Template:: query ()
70
- -> byContextId ((int ) $ context ->getId ())
69
+ // Start with our standard collector/scopes
70
+ $ collector = Template:: byContextId ((int ) $ context ->getId ())
71
71
->with ('userGroups ' );
72
72
73
- if ($ request ->filled ('stageId ' )) {
74
- $ q ->where ('stage_id ' , (int ) $ request ->query ('stageId ' ));
75
- }
73
+ // Apply supported filters from query params via model scopes
74
+ foreach ($ request ->query () as $ param => $ val ) {
75
+ switch ($ param ) {
76
+ case 'stageId ' :
77
+ if ($ val !== null && $ val !== '' ) {
78
+ $ collector = $ collector ->withStageId ((int ) $ val );
79
+ }
80
+ break ;
81
+
82
+ case 'include ' :
83
+ // Accept "true"/"false", 1/0, etc.
84
+ $ bool = filter_var ($ val , FILTER_VALIDATE_BOOLEAN , FILTER_NULL_ON_FAILURE );
85
+ if ($ bool !== null ) {
86
+ $ collector = $ collector ->withInclude ($ bool );
87
+ }
88
+ break ;
76
89
77
- if ($ request ->has ('include ' )) {
78
- $ include = filter_var ($ request ->query ('include ' ), FILTER_VALIDATE_BOOLEAN , FILTER_NULL_ON_FAILURE );
79
- if ($ include !== null ) {
80
- $ q ->where ('include ' , $ include );
90
+ case 'emailTemplateKey ' :
91
+ $ key = trim ((string ) $ val );
92
+ if ($ key !== '' ) {
93
+ $ collector = $ collector ->withEmailTemplateKey ($ key );
94
+ }
95
+ break ;
96
+
97
+ // ignore unknown params
81
98
}
82
99
}
83
100
84
- if ($ request ->filled ('emailTemplateKey ' )) {
85
- $ q ->where ('email_template_key ' , trim ((string ) $ request ->query ('emailTemplateKey ' )));
86
- }
87
- $ collection = $ q ->orderByPkDesc ()->get ();
101
+ $ collection = $ collector ->orderByPkDesc ()->get ();
102
+
88
103
return EditTaskTemplateResource::collection ($ collection )
89
104
->response ()
90
105
->setStatusCode (Response::HTTP_OK );
91
- }
106
+ }
107
+
92
108
}
0 commit comments