From 4bbb9f05ba12894477e611eb9b75113e3e3cce29 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Sat, 24 Apr 2021 10:53:26 +0000
Subject: [PATCH] Umbenannt zu Calypso
---
src/de/uhilger/mediaz/api/StorageHandler.java | 59 ++++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 44 insertions(+), 15 deletions(-)
diff --git a/src/de/uhilger/mediaz/api/StorageHandler.java b/src/de/uhilger/mediaz/api/StorageHandler.java
index f55e8e0..f84629f 100644
--- a/src/de/uhilger/mediaz/api/StorageHandler.java
+++ b/src/de/uhilger/mediaz/api/StorageHandler.java
@@ -21,23 +21,17 @@
import com.sun.net.httpserver.HttpExchange;
import de.uhilger.mediaz.App;
import static de.uhilger.mediaz.App.RB_EP_LISTE;
+import static de.uhilger.mediaz.App.RB_EP_LISTE_ALLES;
import de.uhilger.mediaz.Server;
+import de.uhilger.mediaz.entity.Ablageort;
import de.uhilger.mediaz.store.FileStorage;
import de.uhilger.mediaz.entity.Entity;
import de.uhilger.mediaz.entity.Geraet;
import static de.uhilger.mediaz.store.FileStorage.ST_ABLAGEORT;
import static de.uhilger.mediaz.store.FileStorage.ST_GERAET;
import de.uhilger.mediaz.store.Storage;
-import java.io.BufferedReader;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.Authenticator;
-import java.net.HttpURLConnection;
-import java.net.InetSocketAddress;
-import java.net.ProxySelector;
import java.net.URI;
-import java.net.URL;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
@@ -46,7 +40,6 @@
import java.net.http.HttpClient;
import java.net.http.HttpClient.Version;
import java.net.http.HttpClient.Redirect;
-import java.net.http.HttpClient.Builder;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
@@ -56,6 +49,10 @@
/**
* HttpHandler fuer die Verwaltung von Entitaeten der Mediazentrale
+ *
+ * GET /mz/api/store/[typname]/[name]
+ * GET /mz/api/store/[typname]/liste
+ * GET /mz/api/store/[typname]/listealles (nur Typ Geraet)
*
* @author Ulrich Hilger
* @version 1, 5.4.2021
@@ -77,11 +74,33 @@
Object o = gson.fromJson(bodyLesen(e), fs.typeFromName(type).getType());
if(o instanceof Entity) {
Entity entity = (Entity) o;
- if(fs.exists(type, elemName)) {
+ if(fs.exists(type, elemName)) { // Aenderung
fs.delete(type, elemName);
+ // wenn Ablageort, hier noch alten Kontext entfernen
+ if(type.equalsIgnoreCase(FileStorage.ST_ABLAGEORT)) {
+ Entity aoe = fs.read(type, elemName);
+ if(aoe instanceof Ablageort) {
+ Ablageort ablageort = (Ablageort) aoe;
+ App.getServer().ablageortEntfernen(ablageort.getUrl());
+ }
+ }
fs.write(entity, true);
- } else {
+ // wenn Ablageort, hier noch neuen Kontext anlegen
+ if(type.equalsIgnoreCase(FileStorage.ST_ABLAGEORT)) {
+ if(entity instanceof Ablageort) {
+ Ablageort ablageort = (Ablageort) entity;
+ App.getServer().ablageortHinzufuegen(ablageort);
+ }
+ }
+ } else { // Neu
fs.write(entity, false);
+ // wenn Ablageort, hier noch neuen Kontext anlegen
+ if(type.equalsIgnoreCase(FileStorage.ST_ABLAGEORT)) {
+ if(entity instanceof Ablageort) {
+ Ablageort ablageort = (Ablageort) entity;
+ App.getServer().ablageortHinzufuegen(ablageort);
+ }
+ }
}
return type + Server.SLASH + entity.getName();
} else {
@@ -98,6 +117,14 @@
String type = elems[elems.length - 2];
String elemName = elems[elems.length - 1];
FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF)));
+ if(type.equalsIgnoreCase(FileStorage.ST_ABLAGEORT)) {
+ // im laufenden Server den Context entfernen
+ Entity entity = fs.read(type, elemName);
+ if(entity instanceof Ablageort) {
+ Ablageort ablageort = (Ablageort) entity;
+ App.getServer().ablageortEntfernen(ablageort.getUrl());
+ }
+ }
return fs.delete(type, elemName);
}
@@ -107,7 +134,7 @@
FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF)));
if(path.endsWith(Server.SLASH)) {
List list = null;
- if(elems[elems.length - 1].equalsIgnoreCase(App.getRs(RB_EP_LISTE))) {
+ if(elems[elems.length - 1].equalsIgnoreCase(App.getRs(RB_EP_LISTE_ALLES))) {
String type = elems[elems.length - 2];
logger.fine(type);
if(type.equalsIgnoreCase(ST_GERAET)) {
@@ -115,9 +142,11 @@
Gson gson = new Gson();
Object o = gson.fromJson(bodyLesen(e), fs.typeFromName(type).getType());
return gson.toJson(list);
- } else {
- list = fs.list(type);
}
+ } else if(elems[elems.length - 1].equalsIgnoreCase(App.getRs(RB_EP_LISTE))) {
+ String type = elems[elems.length - 2];
+ logger.fine(type);
+ list = fs.list(type);
if(type.equalsIgnoreCase(ST_ABLAGEORT)) {
list.add("Livestreams");
}
@@ -181,7 +210,7 @@
// {"ison":false,"has_timer":false,"overpower":false}
String[] parts = response.body().split(",")[0].split(":");
logger.finer("ison: " + parts[1]);
- g.setStatus(parts[1]);
+ g.setStatus(Boolean.parseBoolean(parts[1]));
newList.add(g);
}
}
--
Gitblit v1.9.3