|
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 TeamsApi extends CrowdinApi { |
15 | 16 | public TeamsApi(Credentials credentials) { |
@@ -134,6 +135,44 @@ public ResponseList<Team> listTeams(Integer limit, Integer offset, List<OrderByF |
134 | 135 | return TeamResponseList.to(teamResponseList); |
135 | 136 | } |
136 | 137 |
|
| 138 | + /** |
| 139 | + * @param params ListTeamsParams |
| 140 | + * @return list of teams |
| 141 | + * @see <ul> |
| 142 | + * <li><a href="https://developer.crowdin.com/enterprise/api/v2/#operation/api.teams.getMany" target="_blank"><b>Enterprise API Documentation</b></a></li> |
| 143 | + * </ul> |
| 144 | + */ |
| 145 | + public ResponseList<Team> listTeams(ListTeamsParams params) throws HttpException, HttpBadRequestException { |
| 146 | + ListTeamsParams query = Optional.ofNullable(params).orElse(new ListTeamsParams()); |
| 147 | + |
| 148 | + Map<String, Optional<Object>> queryParams = HttpRequestConfig.buildUrlParams( |
| 149 | + "search", Optional.ofNullable(query.getSearch()), |
| 150 | + "projectIds", Optional.ofNullable( |
| 151 | + query.getProjectIds() == null ? null : query.getProjectIds().stream() |
| 152 | + .map(String::valueOf) |
| 153 | + .collect(Collectors.joining(",")) |
| 154 | + ), |
| 155 | + "projectRoles", Optional.ofNullable( |
| 156 | + query.getProjectRoles() == null ? null : query.getProjectRoles().stream() |
| 157 | + .map(projectRole -> projectRole.to(projectRole)) |
| 158 | + .collect(Collectors.joining(",")) |
| 159 | + ), |
| 160 | + "languageIds", Optional.ofNullable( |
| 161 | + query.getLanguageIs() == null ? null : String.join(",", query.getLanguageIs()) |
| 162 | + ), |
| 163 | + "groupIds", Optional.ofNullable( |
| 164 | + query.getGroupIds() == null ? null : query.getGroupIds().stream() |
| 165 | + .map(String::valueOf) |
| 166 | + .collect(Collectors.joining(",")) |
| 167 | + ), |
| 168 | + "orderBy", Optional.ofNullable(OrderByField.generateSortParam(query.getOrderBy())), |
| 169 | + "limit", Optional.ofNullable(query.getLimit()), |
| 170 | + "offset", Optional.ofNullable(query.getOffset()) |
| 171 | + ); |
| 172 | + TeamResponseList teamResponseList = this.httpClient.get(this.url + "/teams", new HttpRequestConfig(queryParams), TeamResponseList.class); |
| 173 | + return TeamResponseList.to(teamResponseList); |
| 174 | + } |
| 175 | + |
137 | 176 | /** |
138 | 177 | * @param request request object |
139 | 178 | * @return newly created team |
|
0 commit comments