Add uninstalled plugins to pending resource

This commit is contained in:
René Pfeuffer
2019-09-16 18:00:02 +02:00
parent fc319f90e3
commit 3e0169b667
2 changed files with 27 additions and 5 deletions

View File

@@ -61,16 +61,24 @@ public class PendingPluginResource {
Stream<InstalledPlugin> updatePlugins = installed
.stream()
.filter(i -> contains(pending, i));
Stream<InstalledPlugin> uninstallPlugins = installed
.stream()
.filter(InstalledPlugin::isMarkedForUninstall);
Links.Builder linksBuilder = linkingTo().self(resourceLinks.pendingPluginCollection().self());
if (!pending.isEmpty()) {
List<PluginDto> installDtos = newPlugins.map(mapper::mapAvailable).collect(toList());
List<PluginDto> updateDtos = updatePlugins.map(i -> mapper.mapInstalled(i, pending)).collect(toList());
List<PluginDto> uninstallDtos = uninstallPlugins.map(i -> mapper.mapInstalled(i, pending)).collect(toList());
if (!installDtos.isEmpty() || !updateDtos.isEmpty() || !uninstallDtos.isEmpty()) {
linksBuilder.single(link("install", resourceLinks.pendingPluginCollection().installPending()));
}
Embedded.Builder embedded = Embedded.embeddedBuilder();
embedded.with("new", newPlugins.map(mapper::mapAvailable).collect(toList()));
embedded.with("update", updatePlugins.map(i -> mapper.mapInstalled(i, pending)).collect(toList()));
embedded.with("new", installDtos);
embedded.with("update", updateDtos);
embedded.with("uninstall", uninstallDtos);
return Response.ok(new HalRepresentation(linksBuilder.build(), embedded.build())).build();
}