|
1 | 1 | package br.com.developers.github.http.utils; |
2 | 2 |
|
| 3 | +import java.net.URI; |
3 | 4 | import org.apache.commons.lang3.StringUtils; |
4 | 5 | import org.springframework.web.util.UriComponents; |
5 | 6 | import org.springframework.web.util.UriComponentsBuilder; |
|
9 | 10 | @NoArgsConstructor(access = AccessLevel.PRIVATE) |
10 | 11 | public final class UrlUtils { |
11 | 12 |
|
12 | | - public static UriComponents mountUrl(String baseUrl, String searchUsers, String qualifier, |
13 | | - String sort, String order, int perPage, int page) { |
14 | | - return UriComponentsBuilder.fromPath(baseUrl.concat(searchUsers).concat(qualifier)) |
15 | | - .queryParam("sort", validateParameter(sort)).queryParam("order", validateParameter(order)) |
16 | | - .queryParam("per_page", validateParameter(String.valueOf(perPage))) |
17 | | - .queryParam("page", validateParameter(String.valueOf(page))).build(); |
| 13 | + public static UriComponents createUrl(String endpoint, String baseUrl, String search, |
| 14 | + String qualifier, String sort, String order, int perPage, int page) { |
| 15 | + UriComponents uri = addParams(endpoint, baseUrl, search, qualifier, sort, order, perPage, page); |
| 16 | + return uri; |
18 | 17 | } |
19 | 18 |
|
20 | | - private static String validateParameter(String parameter) { |
21 | | - return StringUtils.isBlank(parameter) ? "" : parameter; |
| 19 | + private static UriComponents addParams(String endpoint, String baseUrl, String search, |
| 20 | + String qualifier, String sort, String order, int perPage, int page) { |
| 21 | + UriComponentsBuilder builder = UriComponentsBuilder.newInstance(); |
| 22 | + |
| 23 | + builder.uri(URI.create(baseUrl.concat(search).concat(endpoint))); |
| 24 | + |
| 25 | + builder.queryParam("q", qualifier); |
| 26 | + if (validateParameter(sort)) { |
| 27 | + builder.queryParam("sort", sort); |
| 28 | + } |
| 29 | + |
| 30 | + if (validateParameter(order)) { |
| 31 | + builder.queryParam("order", order); |
| 32 | + } |
| 33 | + |
| 34 | + if (validateParameter(String.valueOf(perPage))) { |
| 35 | + builder.queryParam("per_page", String.valueOf(perPage)); |
| 36 | + } |
| 37 | + |
| 38 | + if (validateParameter(String.valueOf(page))) { |
| 39 | + builder.queryParam("page", String.valueOf(page)); |
| 40 | + } |
| 41 | + return builder.build(true); |
| 42 | + } |
| 43 | + |
| 44 | + private static boolean validateParameter(String parameter) { |
| 45 | + return StringUtils.isNotBlank(parameter); |
22 | 46 | } |
23 | 47 | } |
0 commit comments