From b4ca7999659e30694d71dd1d8f4d5d35b9c0f4f1 Mon Sep 17 00:00:00 2001 From: GPortas Date: Mon, 9 Jun 2025 19:06:22 +0100 Subject: [PATCH 01/17] Stash: ListDataverseTemplatesCommand and endpoint WIP --- .../harvard/iq/dataverse/api/Dataverses.java | 12 ++++++ .../impl/ListDataverseTemplatesCommand.java | 39 +++++++++++++++++++ .../iq/dataverse/util/json/JsonPrinter.java | 14 +++++++ 3 files changed, 65 insertions(+) create mode 100644 src/main/java/edu/harvard/iq/dataverse/engine/command/impl/ListDataverseTemplatesCommand.java diff --git a/src/main/java/edu/harvard/iq/dataverse/api/Dataverses.java b/src/main/java/edu/harvard/iq/dataverse/api/Dataverses.java index dcab1519d77..2ec8cac68fc 100644 --- a/src/main/java/edu/harvard/iq/dataverse/api/Dataverses.java +++ b/src/main/java/edu/harvard/iq/dataverse/api/Dataverses.java @@ -1931,4 +1931,16 @@ public Response deleteFeaturedItems(@Context ContainerRequestContext crc, @PathP return e.getResponse(); } } + + @GET + @AuthRequired + @Path("{identifier}/templates") + public Response getTemplates(@Context ContainerRequestContext crc, @PathParam("identifier") String dvIdtf) { + try { + Dataverse dataverse = findDataverseOrDie(dvIdtf); + return ok(json(execCommand(new ListDataverseTemplatesCommand(createDataverseRequest(getRequestUser(crc)), dataverse)))); + } catch (WrappedResponse e) { + return e.getResponse(); + } + } } diff --git a/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/ListDataverseTemplatesCommand.java b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/ListDataverseTemplatesCommand.java new file mode 100644 index 00000000000..54061f241a6 --- /dev/null +++ b/src/main/java/edu/harvard/iq/dataverse/engine/command/impl/ListDataverseTemplatesCommand.java @@ -0,0 +1,39 @@ +package edu.harvard.iq.dataverse.engine.command.impl; + +import edu.harvard.iq.dataverse.Dataverse; +import edu.harvard.iq.dataverse.Template; +import edu.harvard.iq.dataverse.authorization.Permission; +import edu.harvard.iq.dataverse.engine.command.AbstractCommand; +import edu.harvard.iq.dataverse.engine.command.CommandContext; +import edu.harvard.iq.dataverse.engine.command.DataverseRequest; +import edu.harvard.iq.dataverse.engine.command.exception.CommandException; + +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * Lists the templates {@link Template} of a {@link Dataverse}. + */ +public class ListDataverseTemplatesCommand extends AbstractCommand> { + + private final Dataverse dataverse; + + public ListDataverseTemplatesCommand(DataverseRequest request, Dataverse dataverse) { + super(request, dataverse); + this.dataverse = dataverse; + } + + @Override + public List