/***************************************************************************** * * Copyright (C) Zenoss, Inc. 2011, all rights reserved. * * This content is made available according to terms specified in * License.zenoss under the directory where your Zenoss product is installed. * ****************************************************************************/ package org.zenoss.zep.rest; import org.jboss.resteasy.annotations.GZIP; import org.zenoss.protobufs.ProtobufConstants; import org.zenoss.protobufs.zep.Zep.EventTime; import org.zenoss.protobufs.zep.Zep.EventTimeSet; import org.zenoss.zep.ZepException; import org.zenoss.zep.dao.EventTimeDao; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import java.util.Date; import java.util.List; /** * REST API for heartbeat information. */ @Path("1.0/eventtime") public class EventTimeResource { private EventTimeDao eventTimeDao; public void setEventTimeDao(EventTimeDao eventTimeDao) { this.eventTimeDao = eventTimeDao; } @GET @Path("/since") @Produces({MediaType.APPLICATION_JSON, ProtobufConstants.CONTENT_TYPE_PROTOBUF}) @GZIP public EventTimeSet getEventTimesSince(@QueryParam("time") Long time, @QueryParam("limit") Integer limit) throws ZepException { Date date = new Date(time); if (limit == null) { limit = 1000; } List<EventTime> results = this.eventTimeDao.findProcessedSince(date, limit); EventTimeSet ets = EventTimeSet.newBuilder().addAllEventTimes(results).build(); return ets; } }