package gov.nysenate.openleg.dao.auth; import gov.nysenate.openleg.dao.base.BasicSqlQuery; import gov.nysenate.openleg.dao.base.SqlTable; public enum ApiUserQuery implements BasicSqlQuery { INSERT_API_USER( "INSERT INTO public." + SqlTable.API_USER + "(apikey, authenticated, num_requests, email_addr, org_name, users_name, reg_token)\n" + "VALUES (:apikey, :authenticated, :apiRequests, :email, :organizationName, :name, :registrationToken)" ), UPDATE_API_USER( "UPDATE public." + SqlTable.API_USER + "\n" + "SET apikey = :apikey, authenticated = :authenticated, num_requests = :apiRequests," + "users_name = :name, org_name = :organizationName, reg_token = :registrationToken" + "\n" + "WHERE email_addr = :email" ), SELECT_API_USERS( "SELECT u.apikey, u.authenticated, u.num_requests, u.email_addr, u.org_name, u.users_name, u.reg_token,\n" + " r.role\n" + "FROM public." + SqlTable.API_USER + " u\n" + "LEFT JOIN public." + SqlTable.API_USER_ROLE + " r\n" + " ON u.apikey = r.apikey\n" ), SELECT_BY_EMAIL( SELECT_API_USERS.getSql() + "WHERE u.email_addr ILIKE :email" ), SELECT_BY_KEY( SELECT_API_USERS.getSql() + "WHERE u.apikey = :apikey" ), SELECT_BY_TOKEN( SELECT_API_USERS.getSql() + "WHERE u.reg_token = :registrationToken" ), DELETE_USER( "DELETE FROM public." + SqlTable.API_USER + " WHERE email_addr = :email" ), INSERT_API_USER_ROLE( "INSERT INTO public." + SqlTable.API_USER_ROLE + "\n" + " (apikey, role)\n" + "VALUES(:apiKey, :role)" ), DELETE_API_USER_ROLE( "DELETE FROM public." + SqlTable.API_USER_ROLE + "\n" + "WHERE apikey = :apiKey AND role = :role" ), ; private String sql; ApiUserQuery(String sql) { this.sql = sql; } @Override public String getSql() { return this.sql; } }