Skip to content

Commit

Permalink
#10242 add get featured collections
Browse files Browse the repository at this point in the history
  • Loading branch information
sekmiller committed Apr 3, 2024
1 parent c44a04a commit e713494
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 0 deletions.
26 changes: 26 additions & 0 deletions src/main/java/edu/harvard/iq/dataverse/api/Dataverses.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
import edu.harvard.iq.dataverse.engine.command.impl.ListDataverseContentCommand;
import edu.harvard.iq.dataverse.engine.command.impl.ListExplicitGroupsCommand;
import edu.harvard.iq.dataverse.engine.command.impl.ListFacetsCommand;
import edu.harvard.iq.dataverse.engine.command.impl.ListFeaturedCollectionsCommand;
import edu.harvard.iq.dataverse.engine.command.impl.ListMetadataBlockFacetsCommand;
import edu.harvard.iq.dataverse.engine.command.impl.ListMetadataBlocksCommand;
import edu.harvard.iq.dataverse.engine.command.impl.ListRoleAssignments;
Expand Down Expand Up @@ -831,6 +832,31 @@ public Response listFacets(@Context ContainerRequestContext crc, @PathParam("ide
}
}


@GET
@AuthRequired
@Path("{identifier}/featured")
/*
Allows user to get the collections that are featured by a given collection
probably more for SPA than end user
*/
public Response getFeaturedDataverses(@Context ContainerRequestContext crc, @PathParam("identifier") String dvIdtf, String dvAliases) {

try {
User u = getRequestUser(crc);
DataverseRequest r = createDataverseRequest(u);
Dataverse dataverse = findDataverseOrDie(dvIdtf);
JsonArrayBuilder fs = Json.createArrayBuilder();
for (Dataverse f : execCommand(new ListFeaturedCollectionsCommand(r, dataverse))) {
fs.add(f.getAlias());
}
return ok(fs);
} catch (WrappedResponse e) {
return e.getResponse();
}
}


@POST
@AuthRequired
@Path("{identifier}/featured")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@

package edu.harvard.iq.dataverse.engine.command.impl;

import edu.harvard.iq.dataverse.Dataverse;
import edu.harvard.iq.dataverse.DataverseFeaturedDataverse;
import edu.harvard.iq.dataverse.DvObject;
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.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
*
* @author stephenkraffmiller
*/
public class ListFeaturedCollectionsCommand extends AbstractCommand<List<Dataverse>> {

private final Dataverse dv;

public ListFeaturedCollectionsCommand(DataverseRequest aRequest, Dataverse aDataverse) {
super(aRequest, aDataverse);
dv = aDataverse;
}

@Override
public List<Dataverse> execute(CommandContext ctxt) throws CommandException {
List<Dataverse> featuredTarget = new ArrayList<>();
List<DataverseFeaturedDataverse> featuredList = ctxt.featuredDataverses().findByDataverseId(dv.getId());
for (DataverseFeaturedDataverse dfd : featuredList) {
Dataverse fd = dfd.getFeaturedDataverse();
featuredTarget.add(fd);
}
return featuredTarget;

}

@Override
public Map<String, Set<Permission>> getRequiredPermissions() {
return Collections.singletonMap("",
dv.isReleased() ? Collections.<Permission>emptySet()
: Collections.singleton(Permission.ViewUnpublishedDataverse));
}

}

0 comments on commit e713494

Please sign in to comment.