diff --git a/src/main/java/io/linuxserver/fleet/model/ImagePullStat.java b/src/main/java/io/linuxserver/fleet/model/ImagePullStat.java index 933f7e9..df4ba0c 100644 --- a/src/main/java/io/linuxserver/fleet/model/ImagePullStat.java +++ b/src/main/java/io/linuxserver/fleet/model/ImagePullStat.java @@ -56,5 +56,21 @@ public class ImagePullStat { public String toString() { return name().toLowerCase(); } + + public static boolean isValid(String value) { + + try { + + if (null == value) { + return false; + } + + valueOf(value); + return true; + + } catch (IllegalArgumentException e) { + return false; + } + } } } diff --git a/src/main/java/io/linuxserver/fleet/web/routes/GetImagePullHistoryApi.java b/src/main/java/io/linuxserver/fleet/web/routes/GetImagePullHistoryApi.java index c6f4725..e77a6ed 100644 --- a/src/main/java/io/linuxserver/fleet/web/routes/GetImagePullHistoryApi.java +++ b/src/main/java/io/linuxserver/fleet/web/routes/GetImagePullHistoryApi.java @@ -46,10 +46,15 @@ public class GetImagePullHistoryApi implements Route { } int imageId = Integer.parseInt(imageIdParam); + List imagePullStats = imageDelegate.fetchImagePullHistory(imageId, getGroupMode(request)); Image image = imageDelegate.fetchImage(imageId); - List imagePullStats = imageDelegate.fetchImagePullHistory(imageId); - return new ApiResponse<>("OK", ApiImagePullHistory.fromPullStats(image, imagePullStats)); } + + private ImagePullStat.GroupMode getGroupMode(Request request) { + + String groupMode = request.params("groupMode"); + return ImagePullStat.GroupMode.isValid(groupMode) ? ImagePullStat.GroupMode.valueOf(groupMode) : ImagePullStat.GroupMode.DAY; + } }