From 076b6d97d704799a7f74ba2d32f416632d15c0a1 Mon Sep 17 00:00:00 2001 From: Bruna Rosa Date: Thu, 15 Feb 2018 15:22:49 -0200 Subject: [PATCH 1/4] Create structure for Yourls responses --- .gitignore | 2 +- .../quintoandar/urlencoder/UrlEncoder.java | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 138daa4..628dd88 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ .idea urlencoder.iml -target/ \ No newline at end of file +target/ diff --git a/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java b/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java index ff8d59d..80d837c 100644 --- a/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java +++ b/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java @@ -1,7 +1,10 @@ package br.com.quintoandar.urlencoder; import java.util.Map; +import java.util.Optional; import java.util.Random; +import lombok.Builder; +import lombok.Data; import lombok.NonNull; import org.apache.commons.lang3.RandomStringUtils; @@ -65,6 +68,36 @@ private String encodeURL(String urlToEncode, String keyword, boolean overwrite) return null; } + private ShortUrlResponse shortUrlWithKeyword(String urlToEncode, String keywordWithPrefix) { + Map result = this.service.getInstance() + .shorturl(signature, "shorturl", "json", urlToEncode, keywordWithPrefix, + "URL Shortned via QuinToUrlEncoder.java"); + boolean fail = result.get("status").equals("fail"); + String shorturl = Optional.ofNullable(result.get("shorturl")) + .map(o -> o.toString()).orElse(null); + FailReason failReason = Optional.ofNullable(result.get("message")) + .map(m -> { + if (fail) { + if (m.toString().equalsIgnoreCase( + String.format( + "Short URL %s already exists in database or is reserved", + keywordWithPrefix)) + ) { + return FailReason.KEYWORD_ALREADY_EXIST; + } else { + return FailReason.UNKNOWN; + } + } + return null; + }).orElse(null); + + return ShortUrlResponse.builder() + .shortUrl(shorturl) + .fail(fail) + .failReason(failReason) + .build(); + } + public String encodeURLWithHash(String urlToEncode, String hashLoginBypass, String prefix) { int tamHashEncurtado = 6; StringBuilder keyword = new StringBuilder(prefix); @@ -93,4 +126,18 @@ public String encodeWithMultipleTries(String urlToEncode, String hashLoginBypass private String generateRandomAlphanumeric() { return RandomStringUtils.randomAlphanumeric(keywordLength).toLowerCase(); } + + public enum FailReason { + KEYWORD_ALREADY_EXIST, + UNKNOWN, + } + + @Data + @Builder + public class ShortUrlResponse { + + private String shortUrl; + private boolean fail; + private FailReason failReason; + } } From a6f30886d18978faf7d85707dc992f349e3bb6c1 Mon Sep 17 00:00:00 2001 From: Bruna Rosa Date: Wed, 21 Feb 2018 15:25:15 -0300 Subject: [PATCH 2/4] Change methods signature --- .../quintoandar/urlencoder/UrlEncoder.java | 141 +++++++++--------- 1 file changed, 71 insertions(+), 70 deletions(-) diff --git a/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java b/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java index 80d837c..4089d21 100644 --- a/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java +++ b/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java @@ -3,12 +3,14 @@ import java.util.Map; import java.util.Optional; import java.util.Random; -import lombok.Builder; import lombok.Data; import lombok.NonNull; import org.apache.commons.lang3.RandomStringUtils; -public class UrlEncoder { +@Data +public abstract class UrlEncoder { + + private static final int SIZE_SHORT_HASH = 6; private YourlsApiService service; private int keywordLength; @@ -31,47 +33,70 @@ public UrlEncoder(String uri, int keywordLength, String signature, this.environment = String.format("%s-", environment); } - public String encodeURL(@NonNull String urlToEncode) { - return encodeURL(urlToEncode, null, false); + public String encodeURL(String url) { + String generatedKeyword = generateRandomAlphanumeric(); + String finalKeyword = isWithEnvironment() ? + generateKeywordWithEnvironment(generatedKeyword) + : generatedKeyword; + ShortUrlResponse shortUrlResponse = shortUrlWithKeyword(url, finalKeyword); + if (shortUrlResponse.isFail() && shortUrlResponse.getFailReason().equals(FailReason.KEYWORD_ALREADY_EXIST)) { + return this.encodeURL(url); + } else if (!shortUrlResponse.isFail()) { + return shortUrlResponse.getShortUrl(); + } + return null; } - public String encodeURLWithSufix(String urlToEncode, @NonNull String keyword) { - return encodeURL(urlToEncode, keyword, true); + public String encodeUrlWithKeyword(String url, String keyword) { + String finalKeyword = isWithEnvironment() ? + generateKeywordWithEnvironment(keyword) + : keyword; + ShortUrlResponse shortUrlResponse = shortUrlWithKeyword(url, finalKeyword); + if (shortUrlResponse.isFail() && shortUrlResponse.getFailReason().equals(FailReason.KEYWORD_ALREADY_EXIST)) { + deleteKeyword(finalKeyword); + return this.encodeUrlWithKeyword(url, keyword); + } else if (!shortUrlResponse.isFail()) { + return shortUrlResponse.getShortUrl(); + } + return null; } - private String encodeURL(String urlToEncode, String keyword, boolean overwrite) { - keyword = keyword == null ? generateRandomAlphanumeric() : keyword; - String keywordWithPrefix = this.environment + keyword; - - keywordWithPrefix = keywordWithPrefix.toLowerCase(); - Map map = this.service.getInstance() - .shorturl(signature, "shorturl", "json", urlToEncode, keywordWithPrefix, - "URL Shortned via QuinToUrlEncoder.java"); + public String encodeURLWithHash(String url, @NonNull String hash, String prefix) { + String finalKeyword = hash.length() >= SIZE_SHORT_HASH ? generateShortHash(hash, prefix) : prefix; + return encodeUrlWithKeyword(url, finalKeyword); + } - if (map.get("status").equals("fail")) { - if (map.get("message").toString().equalsIgnoreCase( - "Short URL " + keywordWithPrefix + " already exists in database or is reserved")) { - if (overwrite && keyword != null) { - this.service.getInstance() - .delete(signature, YourlsApi.ACTION_DELETE, YourlsApi.FORMAT_JSON, keywordWithPrefix); - return encodeURL(urlToEncode, keyword, overwrite); - } - if (!overwrite && keyword == null) { - return encodeURL(urlToEncode, null, overwrite); - } + public String encodeWithHashMultipleTries(String url, String hash, String prefix, int maxTries) { + int nTries = maxTries; + while (nTries > 0) { + try { + return encodeURLWithHash(url, hash, prefix); + } catch (Exception e) { + nTries--; } } + throw new RuntimeException( + String.format("Url shortning unavailable: tried %d times.", maxTries)); + } - if (map != null && map.containsKey("shorturl")) { - return map.get("shorturl").toString(); - } - return null; + private String generateShortHash(String hash, String prefix) { + int ini = (new Random()).nextInt(hash.length() - SIZE_SHORT_HASH); + return String.format("%s-%s", prefix, hash.substring(ini, ini + SIZE_SHORT_HASH)); + } + + private String generateKeywordWithEnvironment(String generatedKeyword) { + return String.format("%s-%s", getEnvironment(), generatedKeyword); + } + + private void deleteKeyword(String keyword) { + this.service.getInstance() + .delete(signature, YourlsApi.ACTION_DELETE, YourlsApi.FORMAT_JSON, keyword); } - private ShortUrlResponse shortUrlWithKeyword(String urlToEncode, String keywordWithPrefix) { + private ShortUrlResponse shortUrlWithKeyword(String urlToEncode, String keyword) { Map result = this.service.getInstance() - .shorturl(signature, "shorturl", "json", urlToEncode, keywordWithPrefix, - "URL Shortned via QuinToUrlEncoder.java"); + .shorturl(signature, "shorturl", "json", urlToEncode, keyword.toLowerCase(), + "URL Shortned via UrlEncoder.java"); boolean fail = result.get("status").equals("fail"); String shorturl = Optional.ofNullable(result.get("shorturl")) .map(o -> o.toString()).orElse(null); @@ -81,7 +106,7 @@ private ShortUrlResponse shortUrlWithKeyword(String urlToEncode, String keywordW if (m.toString().equalsIgnoreCase( String.format( "Short URL %s already exists in database or is reserved", - keywordWithPrefix)) + keyword)) ) { return FailReason.KEYWORD_ALREADY_EXIST; } else { @@ -90,54 +115,30 @@ private ShortUrlResponse shortUrlWithKeyword(String urlToEncode, String keywordW } return null; }).orElse(null); - - return ShortUrlResponse.builder() - .shortUrl(shorturl) - .fail(fail) - .failReason(failReason) - .build(); - } - - public String encodeURLWithHash(String urlToEncode, String hashLoginBypass, String prefix) { - int tamHashEncurtado = 6; - StringBuilder keyword = new StringBuilder(prefix); - - if (hashLoginBypass != null && hashLoginBypass.length() >= tamHashEncurtado) { - int ini = (new Random()).nextInt(hashLoginBypass.length() - tamHashEncurtado); - keyword.append("-" + hashLoginBypass.substring(ini, ini + tamHashEncurtado)); - } - return encodeURL(urlToEncode, keyword.toString(), true); - } - - public String encodeWithMultipleTries(String urlToEncode, String hashLoginBypass, String prefix, - int maxTries) { - int tries = 0; - while (tries < maxTries) { - try { - return encodeURLWithHash(urlToEncode, hashLoginBypass, prefix); - } catch (Exception e) { - tries++; - } - } - throw new RuntimeException( - String.format("Url shortning unavailable: tried %d", maxTries)); + + return new ShortUrlResponse(shorturl,fail,failReason); } - + private String generateRandomAlphanumeric() { return RandomStringUtils.randomAlphanumeric(keywordLength).toLowerCase(); } - - public enum FailReason { + + protected enum FailReason { KEYWORD_ALREADY_EXIST, UNKNOWN, } @Data - @Builder - public class ShortUrlResponse { - + protected class ShortUrlResponse { + private String shortUrl; private boolean fail; private FailReason failReason; + + public ShortUrlResponse(String shortUrl, boolean fail, FailReason failReason) { + this.shortUrl = shortUrl; + this.fail = fail; + this.failReason = failReason; + } } } From 3376716d55a880a91c74c9b5151dd5446277d564 Mon Sep 17 00:00:00 2001 From: Bruna Rosa Date: Fri, 23 Feb 2018 10:47:21 -0300 Subject: [PATCH 3/4] Fix --- pom.xml | 2 ++ src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bd56097..ab1d7ea 100644 --- a/pom.xml +++ b/pom.xml @@ -48,6 +48,8 @@ 3.1.4.Final 3.1.4.Final 1.16.20 + 1.8 + 1.8 \ No newline at end of file diff --git a/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java b/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java index 4089d21..18dbf92 100644 --- a/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java +++ b/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java @@ -8,7 +8,7 @@ import org.apache.commons.lang3.RandomStringUtils; @Data -public abstract class UrlEncoder { +public class UrlEncoder { private static final int SIZE_SHORT_HASH = 6; From f8fcc9720dede00880c7e035447f8d514f2efd0e Mon Sep 17 00:00:00 2001 From: Bruna Rosa Date: Mon, 26 Feb 2018 10:49:47 -0300 Subject: [PATCH 4/4] Release --- .../urlencoder/1.0.0/urlencoder-1.0.0.jar | Bin 0 -> 10277 bytes .../urlencoder/1.0.0/urlencoder-1.0.0.jar.md5 | 1 + .../1.0.0/urlencoder-1.0.0.jar.sha1 | 1 + .../urlencoder/1.0.0/urlencoder-1.0.0.pom | 74 ++++++++++++++++++ .../urlencoder/1.0.0/urlencoder-1.0.0.pom.md5 | 1 + .../1.0.0/urlencoder-1.0.0.pom.sha1 | 1 + .../quintoandar/urlencoder/maven-metadata.xml | 12 +++ .../urlencoder/maven-metadata.xml.md5 | 1 + .../urlencoder/maven-metadata.xml.sha1 | 1 + pom.xml | 15 +++- .../quintoandar/urlencoder/UrlEncoder.java | 2 +- 11 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar create mode 100644 mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar.md5 create mode 100644 mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar.sha1 create mode 100644 mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom create mode 100644 mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom.md5 create mode 100644 mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom.sha1 create mode 100644 mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml create mode 100644 mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml.md5 create mode 100644 mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml.sha1 diff --git a/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..41952ce99c00f1d0a163c549fa56fdd3858f8824 GIT binary patch literal 10277 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 literal 0 HcmV?d00001 diff --git a/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar.md5 b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar.md5 new file mode 100644 index 0000000..538d135 --- /dev/null +++ b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar.md5 @@ -0,0 +1 @@ +49dc3de2b678cf3e64ee924ceb25459b \ No newline at end of file diff --git a/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar.sha1 b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar.sha1 new file mode 100644 index 0000000..1c05e32 --- /dev/null +++ b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.jar.sha1 @@ -0,0 +1 @@ +d27783f047fb2f74e373c513a4ef22922a58366d \ No newline at end of file diff --git a/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom new file mode 100644 index 0000000..16d5449 --- /dev/null +++ b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom @@ -0,0 +1,74 @@ + + + 4.0.0 + + br.com.quintoandar + urlencoder + 1.0.0 + + + + javax.ws.rs + javax.ws.rs-api + ${rs-api.version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + org.jboss.resteasy + resteasy-jaxrs + ${resteasy-jaxrs.version} + + + org.jboss.resteasy + resteasy-client + ${resteasy-client.version} + + + org.projectlombok + lombok + ${lombok.version} + + + + + + + maven-deploy-plugin + 2.8.1 + + internal.repo::default::file://${internal.repo.path} + + + + + + + 2.1 + 3.7 + 4.5.5 + 3.1.4.Final + 3.1.4.Final + 1.16.20 + 1.8 + 1.8 + ${basedir}/mvn-repo/ + + + + + + + + + \ No newline at end of file diff --git a/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom.md5 b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom.md5 new file mode 100644 index 0000000..7ada8b3 --- /dev/null +++ b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom.md5 @@ -0,0 +1 @@ +8fec72026ee735be963ed7226cd5f567 \ No newline at end of file diff --git a/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom.sha1 b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom.sha1 new file mode 100644 index 0000000..17d73d8 --- /dev/null +++ b/mvn-repo/br/com/quintoandar/urlencoder/1.0.0/urlencoder-1.0.0.pom.sha1 @@ -0,0 +1 @@ +d1c966308a42fd711c44bd0d46fb03a24512068f \ No newline at end of file diff --git a/mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml b/mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml new file mode 100644 index 0000000..844e430 --- /dev/null +++ b/mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml @@ -0,0 +1,12 @@ + + + br.com.quintoandar + urlencoder + + 1.0.0 + + 1.0.0 + + 20180226134832 + + diff --git a/mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml.md5 b/mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml.md5 new file mode 100644 index 0000000..6272d3a --- /dev/null +++ b/mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml.md5 @@ -0,0 +1 @@ +78cdde2bb8a5dfdaa7408bc585f72c06 \ No newline at end of file diff --git a/mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml.sha1 b/mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml.sha1 new file mode 100644 index 0000000..6633247 --- /dev/null +++ b/mvn-repo/br/com/quintoandar/urlencoder/maven-metadata.xml.sha1 @@ -0,0 +1 @@ +c7e4b8690379b4e32e0a4762c649332fddb081d2 \ No newline at end of file diff --git a/pom.xml b/pom.xml index ab1d7ea..0ada4de 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ br.com.quintoandar urlencoder - 1.0-SNAPSHOT + 1.0.0 @@ -41,6 +41,18 @@ + + + + maven-deploy-plugin + 2.8.1 + + internal.repo::default::file://${internal.repo.path} + + + + + 2.1 3.7 @@ -50,6 +62,7 @@ 1.16.20 1.8 1.8 + ${basedir}/mvn-repo/ \ No newline at end of file diff --git a/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java b/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java index 18dbf92..291d290 100644 --- a/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java +++ b/src/main/java/br/com/quintoandar/urlencoder/UrlEncoder.java @@ -30,7 +30,7 @@ public UrlEncoder(String uri, int keywordLength, String signature, @NonNull String environment) { this(uri, keywordLength, signature); this.withEnvironment = true; - this.environment = String.format("%s-", environment); + this.environment = environment; } public String encodeURL(String url) {