Now a zero-dependency library \o/

This commit is contained in:
Sven Kubiak 2018-10-07 12:06:35 +02:00
parent ad5612366d
commit d17fb426bc
4 changed files with 45 additions and 32 deletions

View File

@ -3,7 +3,7 @@
JPushover JPushover
================ ================
Minimalist convenient class for sending messages to [Pushover][1] in Java. Zero-dependency convenient class for sending messages to [Pushover][1] in Java.
Starting with version 3.x JPushover is build for and requires Java 11. Starting with version 3.x JPushover is build for and requires Java 11.

View File

@ -194,13 +194,6 @@
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<dependencies>
<dependency>
<groupId>com.eclipsesource.minimal-json</groupId>
<artifactId>minimal-json</artifactId>
<version>0.9.5</version>
</dependency>
</dependencies>
<distributionManagement> <distributionManagement>
<snapshotRepository> <snapshotRepository>
<id>ossrh</id> <id>ossrh</id>

View File

@ -8,9 +8,10 @@ import java.net.http.HttpClient;
import java.net.http.HttpRequest; import java.net.http.HttpRequest;
import java.net.http.HttpResponse; import java.net.http.HttpResponse;
import java.time.Duration; import java.time.Duration;
import java.util.Map;
import java.util.NavigableMap;
import java.util.Objects; import java.util.Objects;
import java.util.TreeMap;
import com.eclipsesource.json.Json;
import de.svenkubiak.jpushover.enums.Constants; import de.svenkubiak.jpushover.enums.Constants;
import de.svenkubiak.jpushover.enums.Priority; import de.svenkubiak.jpushover.enums.Priority;
@ -18,7 +19,7 @@ import de.svenkubiak.jpushover.enums.Sound;
/** /**
* *
* Minimalist convenient class for sending messages to Pushover * Zero-dependency convenient class for sending messages to Pushover
* *
* @author svenkubiak * @author svenkubiak
* *
@ -256,12 +257,11 @@ public class JPushover {
Objects.requireNonNull(this.pushoverToken, "Token is required for validation"); Objects.requireNonNull(this.pushoverToken, "Token is required for validation");
Objects.requireNonNull(this.pushoverUser, "User is required for validation"); Objects.requireNonNull(this.pushoverUser, "User is required for validation");
var body = Json.object() NavigableMap<String, String> body = new TreeMap<>();
.add(Constants.TOKEN.toString(), this.pushoverToken) body.put(Constants.TOKEN.toString(), this.pushoverToken);
.add(Constants.USER.toString(), this.pushoverUser) body.put(Constants.USER.toString(), this.pushoverUser);
.add(Constants.DEVICE.toString(), this.pushoverDevice);
var httpResponse = getResponse(body.toString(), Constants.VALIDATION_URL.toString()); var httpResponse = getResponse(toJson(body), Constants.VALIDATION_URL.toString());
var valid = false; var valid = false;
if (httpResponse.statusCode() == HTTP_OK) { if (httpResponse.statusCode() == HTTP_OK) {
@ -292,23 +292,25 @@ public class JPushover {
Objects.requireNonNull(this.pushoverExpire, "Expire is required on priority emergency"); Objects.requireNonNull(this.pushoverExpire, "Expire is required on priority emergency");
} }
var body = Json.object() NavigableMap<String, String> body = new TreeMap<>();
.add(Constants.TOKEN.toString(), this.pushoverToken) body.put(Constants.TOKEN.toString(), this.pushoverToken);
.add(Constants.USER.toString(), this.pushoverUser) body.put(Constants.USER.toString(), this.pushoverUser);
.add(Constants.MESSAGE.toString(), this.pushoverMessage) body.put(Constants.MESSAGE.toString(), this.pushoverMessage);
.add(Constants.DEVICE.toString(), this.pushoverDevice) body.put(Constants.DEVICE.toString(), this.pushoverDevice);
.add(Constants.TITLE.toString(), this.pushoverTitle) body.put(Constants.TITLE.toString(), this.pushoverTitle);
.add(Constants.URL.toString(), this.pushoverUrl) body.put(Constants.URL.toString(), this.pushoverUrl);
.add(Constants.RETRY.toString(), this.pushoverRetry) body.put(Constants.RETRY.toString(), this.pushoverRetry);
.add(Constants.EXPIRE.toString(), this.pushoverExpire) body.put(Constants.EXPIRE.toString(), this.pushoverExpire);
.add(Constants.CALLBACK.toString(), this.pushoverCallback) body.put(Constants.CALLBACK.toString(), this.pushoverCallback);
.add(Constants.URLTITLE.toString(), this.pushoverUrlTitle) body.put(Constants.URLTITLE.toString(), this.pushoverUrlTitle);
.add(Constants.PRIORITY.toString(), this.pushoverPriority.toString()) body.put(Constants.PRIORITY.toString(), this.pushoverPriority.toString());
.add(Constants.TIMESTAMP.toString(), this.pushoverTimestamp) body.put(Constants.TIMESTAMP.toString(), this.pushoverTimestamp);
.add(Constants.SOUND.toString(), this.pushoverSound.toString()) body.put(Constants.SOUND.toString(), this.pushoverSound.toString());
.add(Constants.HTML.toString(), this.pushoverHtml ? "1" : "0"); body.put(Constants.HTML.toString(), this.pushoverHtml ? "1" : "0");
var httpResponse = getResponse(body.toString(), Constants.MESSAGES_URL.toString()); System.out.println(toJson(body));
var httpResponse = getResponse(toJson(body), Constants.MESSAGES_URL.toString());
var jPushoverResponse = new JPushoverResponse().isSuccessful(false); var jPushoverResponse = new JPushoverResponse().isSuccessful(false);
jPushoverResponse jPushoverResponse
@ -335,4 +337,18 @@ public class JPushover {
return httpClientBuilder.build().send(httpRequest, HttpResponse.BodyHandlers.ofString()); return httpClientBuilder.build().send(httpRequest, HttpResponse.BodyHandlers.ofString());
} }
private String toJson(NavigableMap<String, String> body) {
StringBuilder buffer = new StringBuilder();
buffer.append("{");
for (Map.Entry<String, String> entry : body.entrySet()) {
buffer.append("\"").append(entry.getKey()).append("\"");
buffer.append(":");
buffer.append("\"").append(entry.getValue()).append("\"");
buffer.append(",");
}
buffer.append("}");
return buffer.toString().replace(",}", "}");
}
} }

View File

@ -0,0 +1,4 @@
module jpushover {
requires java.net.http;
exports de.svenkubiak.jpushover;
}