From 17201335e61560d4e14505967a1bc16dc04ccdce Mon Sep 17 00:00:00 2001 From: ulrich Date: Sat, 10 Apr 2021 13:38:12 +0000 Subject: [PATCH] Titel aus Abspielliste loeschen (in Arbeit) --- src/de/uhilger/mediaz/api/ListHandler.java | 35 ++++++++++++++++++++--------------- 1 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/de/uhilger/mediaz/api/ListHandler.java b/src/de/uhilger/mediaz/api/ListHandler.java index 84a9056..afe41c7 100644 --- a/src/de/uhilger/mediaz/api/ListHandler.java +++ b/src/de/uhilger/mediaz/api/ListHandler.java @@ -47,26 +47,20 @@ @Override protected String get(HttpExchange e) { String path = e.getRequestURI().toString(); - String[] elems = path.split(App.getRs(Server.RB_SLASH)); + String[] elems = path.split(Server.SLASH); String plname = elems[elems.length - 1]; - logger.finer("GET plname: " + plname); FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF))); String json = fs.readJson(FileStorage.ST_ABSPIELLISTE, plname); - logger.finer("PL json: " + json); - return json; + return embedInCustomType(json, FileStorage.ST_ABSPIELLISTE); } @Override protected String put(HttpExchange e) throws IOException { String path = e.getRequestURI().toString(); - String[] elems = path.split(App.getRs(Server.RB_SLASH)); + String[] elems = path.split(Server.SLASH); String response = "ListHandler.put: ungueltiger URL"; - logger.finer("elems.length: " + elems.length); - for(String elem : elems) { - logger.finer("elem: " + elem); - } switch(elems.length) { - case 5: + case 5: // ohne nr am Ende response = addTitel(e, elems[4]); break; @@ -78,16 +72,12 @@ } private String addTitel(HttpExchange e, String plname) throws IOException { - //String plname = elems[elems.length - 1]; - logger.finer("plname: " + plname); FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF))); Entity entity = fs.read(FileStorage.ST_ABSPIELLISTE, plname); String response = "Titel konnte nicht hinzugefuegt werden."; if(entity instanceof Abspielliste) { Abspielliste aliste = (Abspielliste) entity; - logger.finer("aliste: " + aliste.getName()); String titelJson = bodyLesen(e); - logger.finer("titelJson: " + titelJson); Gson gson = new Gson(); Object o = gson.fromJson(titelJson, fs.typeFromName(Titel.class.getSimpleName()).getType()); if(o instanceof Titel) { @@ -105,9 +95,24 @@ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } + // DELETE /mz/api/alist/[pl-name]/[nr] den Titel an der Position [nr] aus der Liste [pl-name] entfernen @Override protected boolean delete(HttpExchange e) { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. + String path = e.getRequestURI().toString(); + String[] elems = path.split(Server.SLASH); + String plname = elems[elems.length - 2]; + String listName = elems[elems.length - 3]; + + FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF))); + Entity entity = fs.read(Abspielliste.class.getSimpleName(), listName); + if(entity instanceof Abspielliste) { + Abspielliste liste = (Abspielliste) entity; + liste.getTitel().remove(Integer.parseInt(elems[elems.length-1])); + fs.write(liste, true); + return true; + } else { + return false; + } } } -- Gitblit v1.9.3