From 630b44fd74991e2757b2870eb76abbf3ad0f616f Mon Sep 17 00:00:00 2001 From: ulrich Date: Sun, 11 Apr 2021 15:33:33 +0000 Subject: [PATCH] Sonderzeichen --- src/de/uhilger/mediaz/api/ListHandler.java | 29 +++++++++++++++++++++++++---- 1 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/de/uhilger/mediaz/api/ListHandler.java b/src/de/uhilger/mediaz/api/ListHandler.java index 02cf740..be42315 100644 --- a/src/de/uhilger/mediaz/api/ListHandler.java +++ b/src/de/uhilger/mediaz/api/ListHandler.java @@ -35,6 +35,7 @@ * PUT /mz/api/alist/[pl-name] den Titel im Body anfuegen an die Liste [pl-name] * PUT /mz/api/alist/[pl-name]/[nr] an der Position nr der Liste [pl-name] den Titel im Body einfuegen * DELETE /mz/api/alist/[pl-name]/[nr] den Titel an der Position [nr] aus der Liste [pl-name] entfernen + * DELETE /mz/api/alist/[pl-name]/alle alle Titel aus der Liste [pl-name] entfernen * * @author Ulrich Hilger * @version 1, 8.4.2021 @@ -42,22 +43,24 @@ public class ListHandler extends AbstractHandler { private static final Logger logger = Logger.getLogger(ListHandler.class.getName()); + + public static final String ALLE_TITEL = "alle"; @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]; FileStorage fs = new FileStorage(App.getInitParameter(App.getRs(App.RB_AP_CONF))); String json = fs.readJson(FileStorage.ST_ABSPIELLISTE, plname); - 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"; switch(elems.length) { case 5: // ohne nr am Ende @@ -95,9 +98,27 @@ 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 listName = elems[elems.length - 2]; + 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; + String titelStr = elems[elems.length-1]; + if(titelStr.equalsIgnoreCase(ALLE_TITEL)) { + liste.getTitel().clear(); + } else { + liste.getTitel().remove(Integer.parseInt(elems[elems.length-1])); + } + fs.write(liste, true); + return true; + } else { + return false; + } } } -- Gitblit v1.9.3