package io.cattle.platform.iaas.api.auditing; import io.cattle.platform.api.auth.Identity; import io.cattle.platform.core.model.AuditLog; import io.cattle.platform.core.model.tables.records.AuditLogRecord; import io.cattle.platform.json.JsonMapper; import io.github.ibuildthecloud.gdapi.context.ApiContext; import io.github.ibuildthecloud.gdapi.model.Resource; import io.github.ibuildthecloud.gdapi.request.ApiRequest; import io.github.ibuildthecloud.gdapi.response.ResourceOutputFilter; import javax.inject.Inject; import org.apache.commons.lang3.StringUtils; public class AuditLogOutPutFilter implements ResourceOutputFilter { @Inject JsonMapper jsonMapper; @Override public Resource filter(ApiRequest request, Object original, Resource converted) { if (original instanceof AuditLogRecord) { AuditLogRecord auditLogRecord = (AuditLogRecord) original; if (auditLogRecord.getResourceId() != null) { converted.getLinks().put("resource", ApiContext.getUrlBuilder().resourceReferenceLink( auditLogRecord.getResourceType(), String.valueOf(auditLogRecord.getResourceId()))); } if (StringUtils.isNotBlank(auditLogRecord.getAuthenticatedAsIdentityId())) { converted.getLinks().put("authenticatedAsIdentity", ApiContext.getUrlBuilder().resourceReferenceLink( Identity.class, String.valueOf(auditLogRecord.getAuthenticatedAsIdentityId()))); } } return converted; } @Override public String[] getTypes() { return new String[0]; } @Override public Class<?>[] getTypeClasses() { return new Class<?>[] { AuditLog.class }; } }