@@ -162,15 +162,55 @@ public function removeMember($group_id, $user_id)
162
162
163
163
/**
164
164
* @param $id
165
- * @param int $page
166
- * @param int $per_page
165
+ * @param array $parameters (
166
+ *
167
+ * @var bool $archived Limit by archived status.
168
+ * @var string $visibility Limit by visibility public, internal, or private.
169
+ * @var string $order_by Return projects ordered by id, name, path, created_at, updated_at, or last_activity_at fields.
170
+ * Default is created_at.
171
+ * @var string $sort Return projects sorted in asc or desc order. Default is desc.
172
+ * @var string $search Return list of authorized projects matching the search criteria.
173
+ * @var bool $simple Return only the ID, URL, name, and path of each project.
174
+ * @var bool $owned Limit by projects owned by the current user.
175
+ * @var bool $starred Limit by projects starred by the current user.
176
+ * )
177
+ *
167
178
* @return mixed
168
179
*/
169
- public function projects ($ id , $ page = 1 , $ per_page = self :: PER_PAGE )
180
+ public function projects ($ id , array $ parameters = [] )
170
181
{
171
- return $ this ->get ('groups/ ' .$ this ->encodePath ($ id ).'/projects ' , array (
172
- 'page ' => $ page ,
173
- 'per_page ' => $ per_page
174
- ));
182
+ $ resolver = $ this ->createOptionsResolver ();
183
+ $ booleanNormalizer = function ($ value ) {
184
+ return $ value ? 'true ' : 'false ' ;
185
+ };
186
+
187
+ $ resolver ->setDefined ('archived ' )
188
+ ->setAllowedTypes ('archived ' , 'bool ' )
189
+ ->setNormalizer ('archived ' , $ booleanNormalizer )
190
+ ;
191
+ $ resolver ->setDefined ('visibility ' )
192
+ ->setAllowedValues ('visibility ' , ['public ' , 'internal ' , 'private ' ])
193
+ ;
194
+ $ resolver ->setDefined ('order_by ' )
195
+ ->setAllowedValues ('order_by ' , ['id ' , 'name ' , 'path ' , 'created_at ' , 'updated_at ' , 'last_activity_at ' ])
196
+ ;
197
+ $ resolver ->setDefined ('sort ' )
198
+ ->setAllowedValues ('sort ' , ['asc ' , 'desc ' ])
199
+ ;
200
+ $ resolver ->setDefined ('search ' );
201
+ $ resolver ->setDefined ('simple ' )
202
+ ->setAllowedTypes ('simple ' , 'bool ' )
203
+ ->setNormalizer ('simple ' , $ booleanNormalizer )
204
+ ;
205
+ $ resolver ->setDefined ('owned ' )
206
+ ->setAllowedTypes ('owned ' , 'bool ' )
207
+ ->setNormalizer ('owned ' , $ booleanNormalizer )
208
+ ;
209
+ $ resolver ->setDefined ('starred ' )
210
+ ->setAllowedTypes ('starred ' , 'bool ' )
211
+ ->setNormalizer ('starred ' , $ booleanNormalizer )
212
+ ;
213
+
214
+ return $ this ->get ('groups/ ' .$ this ->encodePath ($ id ).'/projects ' , $ resolver ->resolve ($ parameters ));
175
215
}
176
216
}
0 commit comments