|
3 | 3 | import io.github.cdimascio.dotenv.Dotenv; |
4 | 4 | import tools.jackson.databind.ObjectMapper; |
5 | 5 |
|
| 6 | +import java.io.FileNotFoundException; |
6 | 7 | import java.io.IOException; |
7 | 8 | import java.net.URI; |
8 | 9 | import java.net.http.HttpClient; |
9 | 10 | import java.net.http.HttpRequest; |
10 | 11 | import java.net.http.HttpResponse; |
| 12 | +import java.nio.file.Path; |
11 | 13 | import java.util.Objects; |
12 | 14 | import java.util.concurrent.CompletableFuture; |
13 | 15 | import java.util.function.Consumer; |
@@ -49,6 +51,26 @@ public CompletableFuture<Boolean> send(String message) { |
49 | 51 | }); |
50 | 52 | } |
51 | 53 |
|
| 54 | + public CompletableFuture<Boolean> sendFile(Path path) { |
| 55 | + try { |
| 56 | + String filename = path.getFileName().toString(); |
| 57 | + |
| 58 | + HttpRequest httpRequest = HttpRequest.newBuilder() |
| 59 | + .PUT(HttpRequest.BodyPublishers.ofFile(path)) |
| 60 | + .header("Filename", filename) |
| 61 | + .header("Content-Type", "application/octet-stream") |
| 62 | + .uri(URI.create(hostName + "/mytopic")) |
| 63 | + .build(); |
| 64 | + |
| 65 | + return http.sendAsync(httpRequest, HttpResponse.BodyHandlers.discarding()) |
| 66 | + .thenApply(response -> response.statusCode() == 200); |
| 67 | + |
| 68 | + } catch (IOException e) { |
| 69 | + System.out.println("Kunde inte läsa filen: " + e.getMessage()); |
| 70 | + return CompletableFuture.completedFuture(false); |
| 71 | + } |
| 72 | + } |
| 73 | + |
52 | 74 | @Override |
53 | 75 | public void receive(Consumer<NtfyMessageDto> messageHandler) { |
54 | 76 | HttpRequest httpRequest = HttpRequest.newBuilder() |
|
0 commit comments