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