package gov.nysenate.openleg.dao.log.data; import com.google.common.collect.Range; import gov.nysenate.openleg.dao.base.LimitOffset; import gov.nysenate.openleg.dao.base.SortOrder; import gov.nysenate.openleg.model.auth.ApiRequest; import gov.nysenate.openleg.model.auth.ApiResponse; import org.springframework.dao.DataAccessException; import java.time.LocalDateTime; import java.util.List; public interface ApiLogDao { /** * Retrieve a list of api responses. This includes the api requests. * * @param limOff LimitOffset - limit results * @param order SortOrder - sort by request date time * @return List<ApiResponse> */ List<ApiResponse> getResponses(LimitOffset limOff, SortOrder order); /** * Retrieve a list of api responses during a given request date time range. * This includes the api requests. * * @param dateTimeRange Range<LocalDateTime> - request date time range * @param limOff LimitOffset - limit results * @param order SortOrder - sort by request date time * @return List<ApiResponse> */ List<ApiResponse> getResponses(Range<LocalDateTime> dateTimeRange, LimitOffset limOff, SortOrder order); /** * Save an ApiResponse into the persistence layer. If the response is saved successfully * a request id will be set on the passed in ApiResponse. * * @param res ApiResponse * @throws DataAccessException */ void saveApiResponse(ApiResponse res) throws DataAccessException; }