@@ -66,11 +66,78 @@ public function show($id)
6666
6767 /**
6868 * @param int $id
69+ * @param array $parameters {
70+ *
71+ * @var bool $archived Limit by archived status.
72+ * @var string $visibility Limit by visibility public, internal, or private.
73+ * @var string $order_by Return projects ordered by id, name, path, created_at, updated_at,
74+ * or last_activity_at fields. Default is created_at.
75+ * @var string $sort Return projects sorted in asc or desc order. Default is desc.
76+ * @var string $search Return list of projects matching the search criteria.
77+ * @var bool $simple Return only the ID, URL, name, and path of each project.
78+ * @var bool $owned Limit by projects owned by the current user.
79+ * @var bool $membership Limit by projects that the current user is a member of.
80+ * @var bool $starred Limit by projects starred by the current user.
81+ * @var bool $statistics Include project statistics.
82+ * @var bool $with_issues_enabled Limit by enabled issues feature.
83+ * @var bool $with_merge_requests_enabled Limit by enabled merge requests feature.
84+ * @var int $min_access_level Limit by current user minimal access level
85+ * }
6986 * @return mixed
7087 */
71- public function usersProjects ($ id , array $ params = array () )
88+ public function usersProjects ($ id , array $ parameters = [] )
7289 {
73- return $ this ->get ('users/ ' .$ this ->encodePath ($ id ).'/projects ' , $ params );
90+ $ resolver = $ this ->createOptionsResolver ();
91+ $ booleanNormalizer = function (Options $ resolver , $ value ) {
92+ return $ value ? 'true ' : 'false ' ;
93+ };
94+ $ resolver ->setDefined ('archived ' )
95+ ->setAllowedTypes ('archived ' , 'bool ' )
96+ ->setNormalizer ('archived ' , $ booleanNormalizer )
97+ ;
98+ $ resolver ->setDefined ('visibility ' )
99+ ->setAllowedValues ('visibility ' , ['public ' , 'internal ' , 'private ' ])
100+ ;
101+ $ resolver ->setDefined ('order_by ' )
102+ ->setAllowedValues ('order_by ' , ['id ' , 'name ' , 'path ' , 'created_at ' , 'updated_at ' , 'last_activity_at ' ])
103+ ;
104+ $ resolver ->setDefined ('sort ' )
105+ ->setAllowedValues ('sort ' , ['asc ' , 'desc ' ])
106+ ;
107+ $ resolver ->setDefined ('search ' );
108+ $ resolver ->setDefined ('simple ' )
109+ ->setAllowedTypes ('simple ' , 'bool ' )
110+ ->setNormalizer ('simple ' , $ booleanNormalizer )
111+ ;
112+ $ resolver ->setDefined ('owned ' )
113+ ->setAllowedTypes ('owned ' , 'bool ' )
114+ ->setNormalizer ('owned ' , $ booleanNormalizer )
115+ ;
116+ $ resolver ->setDefined ('membership ' )
117+ ->setAllowedTypes ('membership ' , 'bool ' )
118+ ->setNormalizer ('membership ' , $ booleanNormalizer )
119+ ;
120+ $ resolver ->setDefined ('starred ' )
121+ ->setAllowedTypes ('starred ' , 'bool ' )
122+ ->setNormalizer ('starred ' , $ booleanNormalizer )
123+ ;
124+ $ resolver ->setDefined ('statistics ' )
125+ ->setAllowedTypes ('statistics ' , 'bool ' )
126+ ->setNormalizer ('statistics ' , $ booleanNormalizer )
127+ ;
128+ $ resolver ->setDefined ('with_issues_enabled ' )
129+ ->setAllowedTypes ('with_issues_enabled ' , 'bool ' )
130+ ->setNormalizer ('with_issues_enabled ' , $ booleanNormalizer )
131+ ;
132+ $ resolver ->setDefined ('with_merge_requests_enabled ' )
133+ ->setAllowedTypes ('with_merge_requests_enabled ' , 'bool ' )
134+ ->setNormalizer ('with_merge_requests_enabled ' , $ booleanNormalizer )
135+ ;
136+ $ resolver ->setDefined ('min_access_level ' )
137+ ->setAllowedValues ('min_access_level ' , [null , 10 , 20 , 30 , 40 , 50 ])
138+ ;
139+
140+ return $ this ->get ('users/ ' .$ this ->encodePath ($ id ).'/projects ' , $ resolver ->resolve ($ parameters ));
74141 }
75142
76143 /**
0 commit comments