Skip to content

Commit fcb71c7

Browse files
author
muriloalvesdev
committed
rule to assemble the URL
1 parent 6843c11 commit fcb71c7

1 file changed

Lines changed: 32 additions & 8 deletions

File tree

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package br.com.developers.github.http.utils;
22

3+
import java.net.URI;
34
import org.apache.commons.lang3.StringUtils;
45
import org.springframework.web.util.UriComponents;
56
import org.springframework.web.util.UriComponentsBuilder;
@@ -9,15 +10,38 @@
910
@NoArgsConstructor(access = AccessLevel.PRIVATE)
1011
public final class UrlUtils {
1112

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;
1817
}
1918

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);
2246
}
2347
}

0 commit comments

Comments
 (0)