package gov.nysenate.openleg.dao.log.data;
import gov.nysenate.openleg.dao.base.BasicSqlQuery;
import gov.nysenate.openleg.dao.base.SqlTable;
public enum ApiRequestResponseQuery implements BasicSqlQuery
{
SELECT_BY_KEY(
"SELECT * FROM public." + SqlTable.API_REQUEST + " where apikey = :apikey"
),
GET_ALL_REQUESTS(
"SELECT * FROM public." + SqlTable.API_REQUEST
),
GET_ALL_REQUESTS_BY_DATETIME(
GET_ALL_REQUESTS.sql + " WHERE request_time BETWEEN :startDateTime AND :endDateTime"
),
GET_ALL_RESPONSES(
"SELECT * FROM public." + SqlTable.API_RESPONSE + " res\n" +
"JOIN public." + SqlTable.API_REQUEST + " req ON res.req_id = req.request_id"
),
GET_ALL_RESPONSES_BY_DATETIME(
GET_ALL_RESPONSES.sql + " WHERE req.request_time BETWEEN :startDateTime AND :endDateTime"
),
INSERT_REQUEST(
"INSERT INTO public." + SqlTable.API_REQUEST + "\n"+
"(request_time, url, ipaddress, method, agent, apikey)" + "\n"+
"VALUES (:requestTime, :url, :ipAddress::inet, :requestMethod, :userAgent, :apikey)" +"\n"+
"RETURNING request_id"
),
INSERT_RESPONSE(
"INSERT INTO public." + SqlTable.API_RESPONSE +"\n"+
"(req_id, response_time, status_code, content_type, process_time)" + "\n"+
"VALUES (:reqId, :responseTime, :status, :content, :processTime)" + "\n"
);
@Override
public String getSql() { return this.sql; }
private String sql;
ApiRequestResponseQuery(String sql) {
this.sql = sql;
}
}