Allow to get audit log of a group through GroupApi
Change-Id: I41c34b33765c2270730bb520d645e9308ed62864
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/GroupApi.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/GroupApi.java
index 417e371..f5a89c0 100644
--- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/GroupApi.java
+++ b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/api/groups/GroupApi.java
@@ -15,6 +15,7 @@
package com.google.gerrit.extensions.api.groups;
import com.google.gerrit.extensions.common.AccountInfo;
+import com.google.gerrit.extensions.common.GroupAuditEventInfo;
import com.google.gerrit.extensions.common.GroupInfo;
import com.google.gerrit.extensions.common.GroupOptionsInfo;
import com.google.gerrit.extensions.restapi.RestApiException;
@@ -132,4 +133,12 @@
* @throws RestApiException
*/
void removeGroups(String... groups) throws RestApiException;
+
+ /**
+ * Returns the audit log of the group.
+ *
+ * @return list of audit events of the group.
+ * @throws RestApiException
+ */
+ List<? extends GroupAuditEventInfo> auditLog() throws RestApiException;
}
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/api/groups/GroupApiImpl.java b/gerrit-server/src/main/java/com/google/gerrit/server/api/groups/GroupApiImpl.java
index b7c8cd9..f11ed86 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/api/groups/GroupApiImpl.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/api/groups/GroupApiImpl.java
@@ -17,6 +17,7 @@
import com.google.gerrit.common.errors.NoSuchGroupException;
import com.google.gerrit.extensions.api.groups.GroupApi;
import com.google.gerrit.extensions.common.AccountInfo;
+import com.google.gerrit.extensions.common.GroupAuditEventInfo;
import com.google.gerrit.extensions.common.GroupInfo;
import com.google.gerrit.extensions.common.GroupOptionsInfo;
import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
@@ -25,6 +26,7 @@
import com.google.gerrit.server.group.AddMembers;
import com.google.gerrit.server.group.DeleteIncludedGroups;
import com.google.gerrit.server.group.DeleteMembers;
+import com.google.gerrit.server.group.GetAuditLog;
import com.google.gerrit.server.group.GetDescription;
import com.google.gerrit.server.group.GetDetail;
import com.google.gerrit.server.group.GetGroup;
@@ -67,6 +69,7 @@
private final ListIncludedGroups listGroups;
private final AddIncludedGroups addGroups;
private final DeleteIncludedGroups deleteGroups;
+ private final GetAuditLog getAuditLog;
private final GroupResource rsrc;
@AssistedInject
@@ -87,6 +90,7 @@
ListIncludedGroups listGroups,
AddIncludedGroups addGroups,
DeleteIncludedGroups deleteGroups,
+ GetAuditLog getAuditLog,
@Assisted GroupResource rsrc) {
this.getGroup = getGroup;
this.getDetail = getDetail;
@@ -104,6 +108,7 @@
this.listGroups = listGroups;
this.addGroups = addGroups;
this.deleteGroups = deleteGroups;
+ this.getAuditLog = getAuditLog;
this.rsrc = rsrc;
}
@@ -258,4 +263,12 @@
}
}
+ @Override
+ public List<? extends GroupAuditEventInfo> auditLog() throws RestApiException {
+ try {
+ return getAuditLog.apply(rsrc);
+ } catch (OrmException e) {
+ throw new RestApiException("Cannot get audit log", e);
+ }
+ }
}