Skip to content

Commit

Permalink
#8600 fix clone template add delete api
Browse files Browse the repository at this point in the history
  • Loading branch information
sekmiller committed May 13, 2022
1 parent dd7060c commit dcf7d31
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -118,11 +118,13 @@ public String cloneTemplate(Template templateIn) {
newOne.setName(name);
newOne.setUsageCount(new Long(0));
newOne.setCreateTime(new Timestamp(new Date().getTime()));
dataverse.getTemplates().add(newOne);
templates.add(newOne);
newOne.setDataverse(dataverse);

Template created;
try {
created = engineService.submit(new CreateTemplateCommand(newOne, dvRequestService.getDataverseRequest(), dataverse));
dataverse.getTemplates().add(created);
templates.add(created);
saveDataverse("");
String msg = BundleUtil.getStringFromBundle("template.clone");//"The template has been copied";
JsfHelper.addFlashMessage(msg);
Expand Down
25 changes: 25 additions & 0 deletions src/main/java/edu/harvard/iq/dataverse/api/Admin.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import edu.harvard.iq.dataverse.validation.EMailValidator;
import edu.harvard.iq.dataverse.EjbDataverseEngine;
import edu.harvard.iq.dataverse.GlobalId;
import edu.harvard.iq.dataverse.Template;
import edu.harvard.iq.dataverse.TemplateServiceBean;
import edu.harvard.iq.dataverse.UserServiceBean;
import edu.harvard.iq.dataverse.actionlogging.ActionLogRecord;
import edu.harvard.iq.dataverse.api.dto.RoleDTO;
Expand Down Expand Up @@ -85,6 +87,7 @@
import edu.harvard.iq.dataverse.engine.command.exception.CommandException;
import edu.harvard.iq.dataverse.engine.command.impl.DeactivateUserCommand;
import edu.harvard.iq.dataverse.engine.command.impl.DeleteRoleCommand;
import edu.harvard.iq.dataverse.engine.command.impl.DeleteTemplateCommand;
import edu.harvard.iq.dataverse.engine.command.impl.RegisterDvObjectCommand;
import edu.harvard.iq.dataverse.ingest.IngestServiceBean;
import edu.harvard.iq.dataverse.settings.SettingsServiceBean;
Expand Down Expand Up @@ -156,6 +159,8 @@ public class Admin extends AbstractApiBean {
ExplicitGroupServiceBean explicitGroupService;
@EJB
BannerMessageServiceBean bannerMessageService;
@EJB
TemplateServiceBean templateService;

// Make the session available
@Inject
Expand Down Expand Up @@ -208,6 +213,26 @@ public Response deleteSetting(@PathParam("name") String name, @PathParam("lang")
settingsSvc.delete(name, lang);
return ok("Setting " + name + " - " + lang + " deleted.");
}

@Path("template/{id}")
@DELETE
public Response deleteTemplate(@PathParam("id") long id) {

Template doomed = templateService.find(id);
if (doomed == null) {
return error(Response.Status.NOT_FOUND, "Template with id " + id + " - not found.");
}
Dataverse dv = doomed.getDataverse();

try {
commandEngine.submit(new DeleteTemplateCommand(dvRequestService.getDataverseRequest(), dv, doomed, null));
} catch (CommandException ex) {
Logger.getLogger(Admin.class.getName()).log(Level.SEVERE, null, ex);
return error(Response.Status.BAD_REQUEST, ex.getLocalizedMessage());
}

return ok("Template " + doomed.getName() + " deleted.");
}

@Path("authenticationProviderFactories")
@GET
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,17 @@ public DeleteTemplateCommand(DataverseRequest aRequest, Dataverse editedDv , Tem

@Override
public Dataverse execute(CommandContext ctxt) throws CommandException {
Dataverse merged = ctxt.em().merge(editedDv);
if (!dvWDefaultTemplate.isEmpty()){
for (Dataverse remove: dvWDefaultTemplate){
remove.setDefaultTemplate(null);
ctxt.em().merge(remove);
}
Dataverse merged = null;
if (editedDv != null) {
merged = ctxt.em().merge(editedDv);
if (!dvWDefaultTemplate.isEmpty()) {
for (Dataverse remove : dvWDefaultTemplate) {
remove.setDefaultTemplate(null);
ctxt.em().merge(remove);
}
}
}

Template doomedAndMerged = ctxt.em().merge(doomed);
ctxt.em().remove(doomedAndMerged);
return merged;
Expand Down

0 comments on commit dcf7d31

Please sign in to comment.