@Override public AdminEventQuery resourceType(ResourceType... resourceTypes) { List<String> resourceTypeStrings = new LinkedList<String>(); for (ResourceType e : resourceTypes) { resourceTypeStrings.add(e.toString()); } query.put("resourceType", new BasicDBObject("$in", resourceTypeStrings)); return this; }
/** * Get admin events * * <p>Returns all admin events, or filters events based on URL query parameters listed here * * @param operationTypes * @param authRealm * @param authClient * @param authUser user id * @param authIpAddress * @param resourcePath * @param dateTo * @param dateFrom * @param firstResult * @param maxResults * @return */ @Path("admin-events") @GET @NoCache @Produces(MediaType.APPLICATION_JSON) public List<AdminEventRepresentation> getEvents( @QueryParam("operationTypes") List<String> operationTypes, @QueryParam("authRealm") String authRealm, @QueryParam("authClient") String authClient, @QueryParam("authUser") String authUser, @QueryParam("authIpAddress") String authIpAddress, @QueryParam("resourcePath") String resourcePath, @QueryParam("dateFrom") String dateFrom, @QueryParam("dateTo") String dateTo, @QueryParam("first") Integer firstResult, @QueryParam("max") Integer maxResults, @QueryParam("resourceTypes") List<String> resourceTypes) { auth.init(RealmAuth.Resource.EVENTS).requireView(); EventStoreProvider eventStore = session.getProvider(EventStoreProvider.class); AdminEventQuery query = eventStore.createAdminQuery().realm(realm.getId()); ; if (authRealm != null) { query.authRealm(authRealm); } if (authClient != null) { query.authClient(authClient); } if (authUser != null) { query.authUser(authUser); } if (authIpAddress != null) { query.authIpAddress(authIpAddress); } if (resourcePath != null) { query.resourcePath(resourcePath); } if (operationTypes != null && !operationTypes.isEmpty()) { OperationType[] t = new OperationType[operationTypes.size()]; for (int i = 0; i < t.length; i++) { t[i] = OperationType.valueOf(operationTypes.get(i)); } query.operation(t); } if (resourceTypes != null && !resourceTypes.isEmpty()) { ResourceType[] t = new ResourceType[resourceTypes.size()]; for (int i = 0; i < t.length; i++) { t[i] = ResourceType.valueOf(resourceTypes.get(i)); } query.resourceType(t); } if (dateFrom != null) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date from = null; try { from = df.parse(dateFrom); } catch (ParseException e) { throw new BadRequestException( "Invalid value for 'Date(From)', expected format is yyyy-MM-dd"); } query.fromTime(from); } if (dateTo != null) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date to = null; try { to = df.parse(dateTo); } catch (ParseException e) { throw new BadRequestException( "Invalid value for 'Date(To)', expected format is yyyy-MM-dd"); } query.toTime(to); } if (firstResult != null) { query.firstResult(firstResult); } if (maxResults != null) { query.maxResults(maxResults); } return toAdminEventRep(query.getResultList()); }