@@ -66,11 +66,78 @@ public function show($id)
66
66
67
67
/**
68
68
* @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
+ * }
69
86
* @return mixed
70
87
*/
71
- public function usersProjects ($ id , array $ params = array () )
88
+ public function usersProjects ($ id , array $ parameters = [] )
72
89
{
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 ));
74
141
}
75
142
76
143
/**
0 commit comments