update contact list

This commit is contained in:
2025-08-04 16:41:23 +03:30
parent 83a29d5ea1
commit 96fa7264cf
10 changed files with 309 additions and 30 deletions
@@ -76,7 +76,7 @@ public class MessageDatabase {
}
public static void logDeletedMessagesFor(UUID chatId, UUID userId) {
List<Message> messages = MessageDatabase.privateChatHistory(chatId);
List<Message> messages = MessageDatabase.privateChatHistory(chatId, userId);
for (Message message : messages) {
if (!isMessageDeleted(message.getMessage_id(), userId)) {
String sql = """
@@ -306,18 +306,45 @@ public class MessageDatabase {
return result;
}
public static List<Message> privateChatHistory(UUID chatId) {
// public static List<Message> privateChatHistory(UUID chatId) {
// List<Message> result = new ArrayList<>();
// String sql = """
// SELECT * FROM messages
// WHERE receiver_type = 'private'
// AND receiver_id = ?
// ORDER BY send_at
// """;
//
// try (Connection conn = ConnectionDb.connect();
// PreparedStatement stmt = conn.prepareStatement(sql)) {
// stmt.setObject(1, chatId);
// ResultSet rs = stmt.executeQuery();
// while (rs.next()) {
// result.add(extractMessage(rs));
// }
// } catch (SQLException e) {
// e.printStackTrace();
// }
// return result;
// }
public static List<Message> privateChatHistory(UUID chatId, UUID userId) {
List<Message> result = new ArrayList<>();
String sql = """
SELECT * FROM messages
SELECT * FROM messages
WHERE receiver_type = 'private'
AND receiver_id = ?
AND receiver_id = ?
AND is_deleted_globally = FALSE
AND message_id NOT IN (
SELECT message_id FROM deleted_messages WHERE user_id = ?
)
ORDER BY send_at
""";
try (Connection conn = ConnectionDb.connect();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setObject(1, chatId);
stmt.setObject(2, userId);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
result.add(extractMessage(rs));
@@ -331,11 +358,39 @@ public class MessageDatabase {
public static List<Message> groupChatHistory(UUID groupId) {
// public static List<Message> groupChatHistory(UUID groupId) {
// List<Message> result = new ArrayList<>();
// String sql = """
// SELECT * FROM messages
// WHERE receiver_type = 'group' AND receiver_id = ?
// ORDER BY send_at
// """;
//
// try (Connection conn = ConnectionDb.connect();
// PreparedStatement stmt = conn.prepareStatement(sql)) {
// stmt.setObject(1, groupId);
// ResultSet rs = stmt.executeQuery();
// while (rs.next()) {
// result.add(extractMessage(rs));
// }
// } catch (SQLException e) {
// e.printStackTrace();
// }
// return result;
// }
public static List<Message> groupChatHistory(UUID groupId,UUID userId) {
List<Message> result = new ArrayList<>();
String sql = """
SELECT * FROM messages
WHERE receiver_type = 'group' AND receiver_id = ?
SELECT * FROM messages
WHERE receiver_type = 'group'
AND receiver_id = ?
AND is_deleted_globally = FALSE
AND message_id NOT IN (
SELECT message_id FROM deleted_messages WHERE user_id = ?
)
ORDER BY send_at
""";
@@ -353,11 +408,39 @@ public class MessageDatabase {
}
public static List<Message> channelChatHistory(UUID channelId) {
// public static List<Message> channelChatHistory(UUID channelId) {
// List<Message> result = new ArrayList<>();
// String sql = """
// SELECT * FROM messages
// WHERE receiver_type = 'channel' AND receiver_id = ?
// ORDER BY send_at
// """;
//
// try (Connection conn = ConnectionDb.connect();
// PreparedStatement stmt = conn.prepareStatement(sql)) {
// stmt.setObject(1, channelId);
// ResultSet rs = stmt.executeQuery();
// while (rs.next()) {
// result.add(extractMessage(rs));
// }
// } catch (SQLException e) {
// e.printStackTrace();
// }
// return result;
// }
public static List<Message> channelChatHistory(UUID channelId,UUID userId) {
List<Message> result = new ArrayList<>();
String sql = """
SELECT * FROM messages
WHERE receiver_type = 'channel' AND receiver_id = ?
SELECT * FROM messages
WHERE receiver_type = 'channel'
AND receiver_id = ?
AND is_deleted_globally = FALSE
AND message_id NOT IN (
SELECT message_id FROM deleted_messages WHERE user_id = ?
)
ORDER BY send_at
""";
@@ -375,6 +458,7 @@ public class MessageDatabase {
}
public static List<Message> searchMessagesInGroups(List<UUID> groupIds, String keyword) {
List<Message> result = new ArrayList<>();
if (groupIds.isEmpty()) return result;