Skip to content

Commit e339bcf

Browse files
committed
Add Links class
1 parent 3d5daf7 commit e339bcf

File tree

5 files changed

+100
-2
lines changed

5 files changed

+100
-2
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
apply plugin: 'maven'
66

77
group 'ru.redguy'
8-
version '1.1.0'
8+
version '1.1.1'
99

1010
repositories {
1111
maven {
@@ -25,7 +25,7 @@ uploadArchives {
2525
repository(url: "https://repo.redguy.ru/repository/maven/") {
2626
authentication(userName: System.getenv("MVN_USER"), password: System.getenv("MVN_PASSWORD"))
2727
}
28-
pom.version = "1.1.0"
28+
pom.version = "1.1.1"
2929
pom.artifactId = "redguyapi"
3030
pom.groupId = "ru.redguy"
3131
}

src/main/java/ru/redguy/redguyapi/RedGuyApi.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import org.jetbrains.annotations.Contract;
44
import org.jetbrains.annotations.NotNull;
55
import ru.redguy.redguyapi.hashes.Hashes;
6+
import ru.redguy.redguyapi.links.Links;
67
import ru.redguy.redguyapi.minecraft.Minecraft;
78
import ru.redguy.redguyapi.news.News;
89
import ru.redguy.redguyapi.token.Token;
@@ -89,4 +90,13 @@ public News news() {
8990
public Hashes hashes() {
9091
return new Hashes(options);
9192
}
93+
94+
/**
95+
* Returns new instance of Links API section
96+
*
97+
* @return Links API section
98+
*/
99+
public Links links() {
100+
return new Links(options);
101+
}
92102
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package ru.redguy.redguyapi.links;
2+
3+
import ru.redguy.redguyapi.ApiError;
4+
import ru.redguy.redguyapi.hashes.Hash;
5+
import ru.redguy.redguyapi.utils.RequestUtil;
6+
7+
import java.io.IOException;
8+
import java.util.HashMap;
9+
import java.util.List;
10+
import java.util.Map;
11+
12+
public class Links {
13+
private final Map<String, String> options;
14+
15+
public Links(Map<String, String> options) {
16+
this.options = options;
17+
}
18+
19+
/**
20+
* Checks links is it safe
21+
*
22+
* @return Array of SafeEntries
23+
* @throws ApiError Error from API
24+
* @throws IOException Network error
25+
*/
26+
public List<SafeEntry> isSafe(String link) throws ApiError, IOException {
27+
return RequestUtil.mainGet("v1/links/safe", SafeResponse.class, options, new HashMap<String, Object>() {{
28+
put("link", link);
29+
}}).getDomains();
30+
}
31+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package ru.redguy.redguyapi.links;
2+
3+
public class SafeEntry {
4+
private String domain;
5+
private boolean safe;
6+
private String source;
7+
8+
public String getDomain() {
9+
return domain;
10+
}
11+
12+
public void setDomain(String domain) {
13+
this.domain = domain;
14+
}
15+
16+
public boolean isSafe() {
17+
return safe;
18+
}
19+
20+
public void setSafe(boolean safe) {
21+
this.safe = safe;
22+
}
23+
24+
public String getSource() {
25+
return source;
26+
}
27+
28+
public void setSource(String source) {
29+
this.source = source;
30+
}
31+
32+
@Override
33+
public String toString() {
34+
return "SafeEntry{" +
35+
"domain='" + domain + '\'' +
36+
", safe=" + safe +
37+
", source='" + source + '\'' +
38+
'}';
39+
}
40+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package ru.redguy.redguyapi.links;
2+
3+
import ru.redguy.redguyapi.utils.RequestUtil;
4+
5+
import java.util.List;
6+
7+
public class SafeResponse implements RequestUtil.ApiResponse {
8+
public List<SafeEntry> getDomains() {
9+
return domains;
10+
}
11+
12+
public void setDomains(List<SafeEntry> domains) {
13+
this.domains = domains;
14+
}
15+
16+
private List<SafeEntry> domains;
17+
}

0 commit comments

Comments
 (0)