91 lines
3.7 KiB
Java
91 lines
3.7 KiB
Java
package net.mindoverflow.webmarker.utils.sql;
|
|
|
|
import net.mindoverflow.webmarker.utils.Cached;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.List;
|
|
import java.util.UUID;
|
|
|
|
public class MarkerSQLUtils {
|
|
|
|
public static boolean addUser(UUID randomId, String name, String password)
|
|
{
|
|
|
|
String query = "INSERT INTO " + MDatabaseTable.USERS.getTable().getTableSQLName() + " (" +
|
|
MDatabaseColumn.USER_UUID.getColumn().getColumnSQLName() + ", " +
|
|
MDatabaseColumn.USERNAME.getColumn().getColumnSQLName() + ", " +
|
|
MDatabaseColumn.PASSWORD.getColumn().getColumnSQLName() + ") VALUES (?, ?, ?);";
|
|
|
|
return Cached.sqlManager.executeUpdate(query, randomId.toString(), name, password);
|
|
}
|
|
|
|
public static boolean userExists(String name)
|
|
{
|
|
String query = "SELECT " + MDatabaseColumn.USERNAME.getColumn().getColumnSQLName() +
|
|
" FROM " + MDatabaseTable.USERS.getTable().getTableSQLName() +
|
|
" WHERE " + MDatabaseColumn.USERNAME.getColumn().getColumnSQLName() +
|
|
" = ? ;";
|
|
|
|
List<String> result = Cached.sqlManager.executeStatement(query, MDatabaseColumn.USERNAME, name);
|
|
return result.size() > 0;
|
|
}
|
|
|
|
public static boolean uuidTaken(UUID randomId)
|
|
{
|
|
String query = "SELECT " + MDatabaseColumn.USER_UUID.getColumn().getColumnSQLName() +
|
|
" FROM " + MDatabaseTable.USERS.getTable().getTableSQLName() +
|
|
" WHERE " + MDatabaseColumn.USER_UUID.getColumn().getColumnSQLName() +
|
|
" = ? ;";
|
|
|
|
List<String> result = Cached.sqlManager.executeStatement(query, MDatabaseColumn.USER_UUID, randomId.toString());
|
|
if(result.size() > 0) return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
public static UUID getUserUUID(String username)
|
|
{
|
|
String query = "SELECT " + MDatabaseColumn.USER_UUID.getColumn().getColumnSQLName() +
|
|
" FROM " + MDatabaseTable.USERS.getTable().getTableSQLName() +
|
|
" WHERE " + MDatabaseColumn.USERNAME.getColumn().getColumnSQLName() +
|
|
" = ? ;";
|
|
|
|
List<String> result = Cached.sqlManager.executeStatement(query, MDatabaseColumn.USER_UUID, username);
|
|
if(result.size() != 1) return null; //todo: error!
|
|
|
|
return UUID.fromString(result.get(0));
|
|
}
|
|
|
|
// todo: use UUID?
|
|
public static String getUserBcryptedPassword(String username)
|
|
{
|
|
String query = "SELECT " + MDatabaseColumn.PASSWORD.getColumn().getColumnSQLName() +
|
|
" FROM " + MDatabaseTable.USERS.getTable().getTableSQLName() +
|
|
" WHERE " + MDatabaseColumn.USERNAME.getColumn().getColumnSQLName() +
|
|
" = ? ;";
|
|
|
|
List<String> result = Cached.sqlManager.executeStatement(query, MDatabaseColumn.PASSWORD, username);
|
|
if(result.size() != 1) return null; // todo: error!
|
|
|
|
return result.get(0);
|
|
}
|
|
|
|
public static boolean addHistoryRecord(UUID uuid, String url, LocalDateTime timestampUTC)
|
|
{
|
|
String query = "INSERT INTO " + MDatabaseTable.HISTORY.getTable().getTableSQLName() + " (" +
|
|
MDatabaseColumn.USER_UUID.getColumn().getColumnSQLName() + ", " +
|
|
MDatabaseColumn.WEB_DOMAIN.getColumn().getColumnSQLName() + ", " +
|
|
MDatabaseColumn.TIMESTAMP_UTC.getColumn().getColumnSQLName() + ") VALUES (?, ?, ?);";
|
|
|
|
DateTimeFormatter sqlDateTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
String timestampSQL = sqlDateTime.format(timestampUTC);
|
|
|
|
System.out.println("SQL Timestamp: " + timestampSQL);
|
|
|
|
return Cached.sqlManager.executeUpdate(query, uuid.toString(), url, timestampSQL);
|
|
|
|
|
|
}
|
|
}
|