|
10 | 10 | import java.util.List; |
11 | 11 | import java.util.Map; |
12 | 12 | import java.util.Optional; |
| 13 | +import java.util.stream.Collectors; |
13 | 14 |
|
14 | 15 | public class UsersApi extends CrowdinApi { |
15 | 16 | public UsersApi(Credentials credentials) { |
@@ -243,6 +244,54 @@ public ResponseList<User> listUsers(Status status, String search, TwoFactor twoF |
243 | 244 | return UserResponseList.to(userResponseList); |
244 | 245 | } |
245 | 246 |
|
| 247 | + /** |
| 248 | + * @param params ListUsersParams |
| 249 | + * @return list of teams |
| 250 | + * @see <ul> |
| 251 | + * <li><a href="https://developer.crowdin.com/enterprise/api/v2/#operation/api.users.getMany" target="_blank"><b>Enterprise API Documentation</b></a></li> |
| 252 | + * </ul> |
| 253 | + */ |
| 254 | + public ResponseList<User> listUsers(ListUsersParams params) throws HttpException, HttpBadRequestException { |
| 255 | + ListUsersParams query = Optional.ofNullable(params).orElse(new ListUsersParams()); |
| 256 | + |
| 257 | + Map<String, Optional<Object>> queryParams = HttpRequestConfig.buildUrlParams( |
| 258 | + "status", Optional.ofNullable(query.getStatus()), |
| 259 | + "search", Optional.ofNullable(query.getSearch()), |
| 260 | + "twoFactor", Optional.ofNullable(query.getTwoFactor()), |
| 261 | + "limit", Optional.ofNullable(query.getLimit()), |
| 262 | + "offset", Optional.ofNullable(query.getOffset()), |
| 263 | + "orderBy", Optional.ofNullable(OrderByField.generateSortParam(query.getOrderBy())), |
| 264 | + "organizationRoles", Optional.ofNullable( |
| 265 | + query.getOrganizationRoles() == null ? null : query.getOrganizationRoles().stream() |
| 266 | + .map(organizationRole -> organizationRole.to(organizationRole)) |
| 267 | + .collect(Collectors.joining(",")) |
| 268 | + ), |
| 269 | + "teamId", Optional.ofNullable(query.getTeamId()), |
| 270 | + "projectIds", Optional.ofNullable( |
| 271 | + query.getProjectIds() == null ? null : query.getProjectIds().stream() |
| 272 | + .map(String::valueOf) |
| 273 | + .collect(Collectors.joining(",")) |
| 274 | + ), |
| 275 | + "projectRoles", Optional.ofNullable( |
| 276 | + query.getProjectRoles() == null ? null : query.getProjectRoles().stream() |
| 277 | + .map(projectRole -> projectRole.to(projectRole)) |
| 278 | + .collect(Collectors.joining(",")) |
| 279 | + ), |
| 280 | + "languageIds", Optional.ofNullable( |
| 281 | + query.getLanguageIds() == null ? null : String.join(",", query.getLanguageIds()) |
| 282 | + ), |
| 283 | + "groupIds", Optional.ofNullable( |
| 284 | + query.getGroupIds() == null ? null : query.getGroupIds().stream() |
| 285 | + .map(String::valueOf) |
| 286 | + .collect(Collectors.joining(",")) |
| 287 | + ), |
| 288 | + "lastSeenFrom", Optional.ofNullable(query.getLastSeenFrom()), |
| 289 | + "lastSeenTo", Optional.ofNullable(query.getLastSeenTo()) |
| 290 | + ); |
| 291 | + UserResponseList userResponseList = this.httpClient.get(this.url + "/users", new HttpRequestConfig(queryParams), UserResponseList.class); |
| 292 | + return UserResponseList.to(userResponseList); |
| 293 | + } |
| 294 | + |
246 | 295 | /** |
247 | 296 | * @param request request object |
248 | 297 | * @return invited user |
|
0 commit comments