30 12 25
Ура работает всё под новую таблицу. И все тесты проходят!!
This commit is contained in:
parent
f653689112
commit
62ea49d1fc
@ -82,7 +82,7 @@ public class DatabaseInitializer {
|
||||
CREATE TABLE IF NOT EXISTS solana_users (
|
||||
login TEXT NOT NULL PRIMARY KEY,
|
||||
deviceKey TEXT NOT NULL,
|
||||
solanaKey TEXT NULLABLE
|
||||
solanaKey TEXT
|
||||
);
|
||||
""");
|
||||
|
||||
|
||||
@ -42,13 +42,14 @@ public final class SolanaUsersDAO {
|
||||
/** Вставка с внешним соединением. Соединение НЕ закрывает. */
|
||||
public void insert(Connection c, SolanaUserEntry user) throws SQLException {
|
||||
String sql = """
|
||||
INSERT INTO solana_users (login, deviceKey)
|
||||
VALUES (?, ?)
|
||||
INSERT INTO solana_users (login, deviceKey, solanaKey)
|
||||
VALUES (?, ?, ?)
|
||||
""";
|
||||
|
||||
try (PreparedStatement ps = c.prepareStatement(sql)) {
|
||||
ps.setString(1, user.getLogin());
|
||||
ps.setString(2, user.getDeviceKey());
|
||||
ps.setString(3, user.getSolanaKey());
|
||||
ps.executeUpdate();
|
||||
}
|
||||
}
|
||||
@ -91,7 +92,7 @@ public final class SolanaUsersDAO {
|
||||
/** Получить по login (case-insensitive) с внешним соединением. Соединение НЕ закрывает. */
|
||||
public SolanaUserEntry getByLogin(Connection c, String login) throws SQLException {
|
||||
String sql = """
|
||||
SELECT login, deviceKey
|
||||
SELECT login, deviceKey, solanaKey
|
||||
FROM solana_users
|
||||
WHERE LOWER(login) = LOWER(?)
|
||||
""";
|
||||
@ -115,7 +116,7 @@ public final class SolanaUsersDAO {
|
||||
/** Поиск по префиксу с внешним соединением. Соединение НЕ закрывает. */
|
||||
public List<SolanaUserEntry> searchByLoginPrefix(Connection c, String prefix) throws SQLException {
|
||||
String sql = """
|
||||
SELECT login, deviceKey
|
||||
SELECT login, deviceKey, solanaKey
|
||||
FROM solana_users
|
||||
WHERE LOWER(login) LIKE ?
|
||||
ORDER BY login
|
||||
@ -144,9 +145,15 @@ public final class SolanaUsersDAO {
|
||||
// -------------------- MAPPER --------------------
|
||||
|
||||
private SolanaUserEntry mapRow(ResultSet rs) throws SQLException {
|
||||
return new SolanaUserEntry(
|
||||
SolanaUserEntry e = new SolanaUserEntry(
|
||||
rs.getString("login"),
|
||||
rs.getString("deviceKey")
|
||||
);
|
||||
|
||||
String solanaKey = rs.getString("solanaKey");
|
||||
if (rs.wasNull()) solanaKey = null;
|
||||
e.setSolanaKey(solanaKey);
|
||||
|
||||
return e;
|
||||
}
|
||||
}
|
||||
@ -56,7 +56,7 @@ public final class UserCreateDAO {
|
||||
|
||||
try {
|
||||
// 1) user
|
||||
SolanaUserEntry u = new SolanaUserEntry(login, deviceKey);
|
||||
SolanaUserEntry u = new SolanaUserEntry(login, deviceKey, deviceKey);
|
||||
usersDao.insert(c, u); // если login занят -> constraint
|
||||
|
||||
// 2) blockchain_state
|
||||
|
||||
@ -16,6 +16,7 @@ public class SolanaUserEntry {
|
||||
|
||||
private String login; // TEXT PK
|
||||
private String deviceKey; // TEXT NOT NULL (Base64(32 bytes))
|
||||
private String solanaKey; // TEXT
|
||||
|
||||
public SolanaUserEntry() {}
|
||||
|
||||
@ -24,6 +25,12 @@ public class SolanaUserEntry {
|
||||
this.deviceKey = deviceKey;
|
||||
}
|
||||
|
||||
public SolanaUserEntry(String login, String deviceKey, String solanaKey) {
|
||||
this.login = login;
|
||||
this.deviceKey = deviceKey;
|
||||
this.solanaKey = solanaKey;
|
||||
}
|
||||
|
||||
public String getLogin() { return login; }
|
||||
public void setLogin(String login) { this.login = login; }
|
||||
|
||||
@ -31,6 +38,9 @@ public class SolanaUserEntry {
|
||||
public String getDeviceKey() { return deviceKey; }
|
||||
public void setDeviceKey(String deviceKey) { this.deviceKey = deviceKey; }
|
||||
|
||||
public String getSolanaKey() { return solanaKey; }
|
||||
public void setSolanaKey(String solanaKey) { this.solanaKey = solanaKey; }
|
||||
|
||||
/**
|
||||
* Device key в байтах (32 байта) или null, если ключ битый/пустой.
|
||||
*
|
||||
|
||||
@ -90,6 +90,7 @@ public class Net_AddUser_Handler implements JsonMessageHandler {
|
||||
// 3. Создаём пользователя
|
||||
SolanaUserEntry user = new SolanaUserEntry(
|
||||
req.getLogin(),
|
||||
req.getDeviceKey(),
|
||||
req.getDeviceKey()
|
||||
);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user