From 57b42b6ff718d444902ea38ce73fcceaede03966 Mon Sep 17 00:00:00 2001 From: Rick Herrick <jrherrick@wustl.edu> Date: Thu, 14 Apr 2016 16:11:16 -0500 Subject: [PATCH] Changed paths for spawner elements controller to avoid conflicts. --- .../controllers/ManageElementsController.java | 44 +++++++++++++++---- 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/nrg/xnat/spawner/controllers/ManageElementsController.java b/src/main/java/org/nrg/xnat/spawner/controllers/ManageElementsController.java index e806046f..6df849ad 100644 --- a/src/main/java/org/nrg/xnat/spawner/controllers/ManageElementsController.java +++ b/src/main/java/org/nrg/xnat/spawner/controllers/ManageElementsController.java @@ -12,27 +12,53 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import javax.inject.Inject; +import java.util.HashMap; import java.util.List; +import java.util.Map; @SuppressWarnings("SpringMVCViewInspection") @Controller -@RequestMapping(value = "/spawner/elements", produces = "application/json") +@RequestMapping(value = "/spawner/manage", produces = "application/json") public class ManageElementsController { @RequestMapping - public ModelAndView getAvailableElements() { - final List<SpawnerElement> elements = _service.getAll(); - return new ModelAndView("spawner/elements", "elements", elements); + public ModelAndView getNamespaces() { + final List<String> namespaces = _service.getNamespaces(); + return new ModelAndView("spawner/elements", "namespaces", namespaces); } - @RequestMapping(value = "{elementId}", method = RequestMethod.GET) - public ModelAndView getElement(@PathVariable final String elementId) { - final SpawnerElement element = _service.retrieve(elementId); + @RequestMapping("elements") + public ModelAndView getDefaultElements() { + return getNamespacedElements(SpawnerElement.DEFAULT_NAMESPACE); + } + + @RequestMapping("elements/{namespace}") + public ModelAndView getNamespacedElements(@PathVariable("namespace") final String namespace) { + final Map<String, Object> models = new HashMap<>(); + models.put("namespace", namespace); + models.put("namespaces", _service.getNamespaces()); + models.put("elements", _service.getDefaultElements()); + return new ModelAndView("spawner/elements", models); + } + + @RequestMapping(value = "element/{elementId}", method = RequestMethod.GET) + public ModelAndView getDefaultElement(@PathVariable final String elementId) { + return getNamespacedElement(SpawnerElement.DEFAULT_NAMESPACE, elementId); + } + + @RequestMapping(value = "element/{namespace}/{elementId}", method = RequestMethod.GET) + public ModelAndView getNamespacedElement(@PathVariable("namespace") final String namespace, @PathVariable final String elementId) { + final SpawnerElement element = _service.retrieve(namespace, elementId); return new ModelAndView("spawner/element", element == null ? "error" : "elementId", element == null ? "The ID element " + elementId + " was not found in the system." : elementId); } - @RequestMapping(value = "{elementId}", method = RequestMethod.PUT) - public ModelAndView setElement(@PathVariable final String elementId, @RequestBody final SpawnerElement element) { + @RequestMapping(value = "element/{elementId}", method = RequestMethod.PUT) + public ModelAndView setDefaultElement(@PathVariable final String elementId, @RequestBody final SpawnerElement element) { + return setNamespacedElement(SpawnerElement.DEFAULT_NAMESPACE, elementId, element); + } + + @RequestMapping(value = "element/{namespace}/{elementId}", method = RequestMethod.PUT) + public ModelAndView setNamespacedElement(@PathVariable final String namespace, @PathVariable final String elementId, @RequestBody final SpawnerElement element) { if (element == null) { return new ModelAndView("spawner/element", "error", "No valid spawner element was found in your submitted data."); } -- GitLab