package gov.nysenate.openleg.service.log.data; import com.google.common.collect.Range; import gov.nysenate.openleg.service.log.event.ApiLogEvent; import gov.nysenate.openleg.dao.base.LimitOffset; import gov.nysenate.openleg.dao.base.SortOrder; import gov.nysenate.openleg.model.auth.ApiResponse; import java.time.LocalDateTime; import java.util.List; public interface ApiLogDataService { /** * Retrieve persisted log data. * * @param dateTimeRange Range<LocalDateTime> dateTimeRange * @param limOff LimitOffset * @param order SortOrder * @return List<ApiResponse> */ List<ApiResponse> getResponses(Range<LocalDateTime> dateTimeRange, LimitOffset limOff, SortOrder order); /** * Persist ApiLogEvent into the data store asynchronously. * * @param apiLogEvent ApiLogEvent * @param emitSearchEvent boolean - set to true if a ApiLogIndexEvent should fire upon persisting. */ void saveApiResponseAsync(ApiLogEvent apiLogEvent, boolean emitSearchEvent); }