diff --git a/src/main/java/org/to/telegramfinalproject/Client/SidebarHandler.java b/src/main/java/org/to/telegramfinalproject/Client/SidebarHandler.java index 5085e14..dab17f2 100644 --- a/src/main/java/org/to/telegramfinalproject/Client/SidebarHandler.java +++ b/src/main/java/org/to/telegramfinalproject/Client/SidebarHandler.java @@ -255,106 +255,106 @@ public class SidebarHandler { actionHandler.showContactList(); } - public void getSavedMessagesData(String userId) { - try { - // Step 1: Create the request - JSONObject request = new JSONObject(); - request.put("action", "get_saved_messages"); - request.put("user_id", userId); +// public void getSavedMessagesData(String userId) { +// try { +// // Step 1: Create the request +// JSONObject request = new JSONObject(); +// request.put("action", "get_saved_messages"); +// request.put("user_id", userId); +// +// // Step 2: Send request and wait for response +// JSONObject response = ActionHandler.sendWithResponse(request); +// +// // Step 3: Check the response +// if (!response.optString("status", "fail").equals("success")) { +// System.out.println("Failed to open Saved Messages chat: " + response.optString("message", "Unknown error")); +// return; +// } +// +// // Step 4: Extract "data" object +// JSONObject data = response.getJSONObject("data"); +// UUID chatId = UUID.fromString(data.getString("chat_id")); +// JSONArray messagesArray = data.getJSONArray("messages"); +// +// // Step 5: Parse messages +// List messages = new ArrayList<>(); +// if (!messagesArray.isEmpty()) { +// for (int i = 0; i < messagesArray.length(); i++) { +// JSONObject msgJson = messagesArray.getJSONObject(i); +// +// // Safely extract optional UUIDs +// UUID replyToId = null; +// String replyToIdStr = msgJson.optString("reply_to_id", null); +// if (replyToIdStr != null && !replyToIdStr.equals("null")) { +// replyToId = UUID.fromString(replyToIdStr); +// } +// +// UUID originalMessageId = null; +// String originalMessageIdStr = msgJson.optString("original_message_id", null); +// if (originalMessageIdStr != null && !originalMessageIdStr.equals("null")) { +// originalMessageId = UUID.fromString(originalMessageIdStr); +// } +// +// UUID forwardedBy = null; +// String forwardedByStr = msgJson.optString("forwarded_by", null); +// if (forwardedByStr != null && !forwardedByStr.equals("null")) { +// forwardedBy = UUID.fromString(forwardedByStr); +// } +// +// UUID forwardedFrom = null; +// String forwardedFromStr = msgJson.optString("forwarded_from", null); +// if (forwardedFromStr != null && !forwardedFromStr.equals("null")) { +// forwardedFrom = UUID.fromString(forwardedFromStr); +// } +// +// Message msg = new Message( +// UUID.fromString(msgJson.getString("message_id")), +// UUID.fromString(msgJson.getString("sender_id")), +// msgJson.getString("receiver_type"), +// UUID.fromString(msgJson.getString("receiver_id")), +// msgJson.getString("content"), +// msgJson.getString("message_type"), +// LocalDateTime.parse(msgJson.getString("send_at").replace(" ", "T")), +// msgJson.getString("status"), +// replyToId, +// msgJson.getBoolean("is_edited"), +// originalMessageId, +// forwardedBy, +// forwardedFrom, +// msgJson.getBoolean("is_deleted_globally"), +// LocalDateTime.parse(msgJson.getString("edited_at").replace(" ", "T")) +// ); +// +// messages.add(msg); +// } +// } +// +// // Step 6: Add to active chats if not already present +// boolean alreadyExists = Session.activeChats.stream() +// .anyMatch(entry -> entry.getId().equals(chatId)); +// if (!alreadyExists) { +// ChatEntry savedEntry = new ChatEntry( +// chatId, +// "Saved-Messages", +// "Saved Messages", +// "📌", // or use a URL string if you have an icon for saved messages +// "private", +// messages.isEmpty() ? null : messages.get(messages.size() - 1).getSend_at() +// ); +// savedEntry.setSavedMessages(true); +// Session.activeChats.add(savedEntry); +// } +// +// // Step 7: Show chat +// showSavedMessages(chatId, messages); +// +// } catch (Exception e) { +// System.out.println("An error occurred while retrieving Saved Messages."); +// e.printStackTrace(); +// } +// } - // Step 2: Send request and wait for response - JSONObject response = ActionHandler.sendWithResponse(request); - - // Step 3: Check the response - if (!response.optString("status", "fail").equals("success")) { - System.out.println("Failed to open Saved Messages chat: " + response.optString("message", "Unknown error")); - return; - } - - // Step 4: Extract "data" object - JSONObject data = response.getJSONObject("data"); - UUID chatId = UUID.fromString(data.getString("chat_id")); - JSONArray messagesArray = data.getJSONArray("messages"); - - // Step 5: Parse messages - List messages = new ArrayList<>(); - if (!messagesArray.isEmpty()) { - for (int i = 0; i < messagesArray.length(); i++) { - JSONObject msgJson = messagesArray.getJSONObject(i); - - // Safely extract optional UUIDs - UUID replyToId = null; - String replyToIdStr = msgJson.optString("reply_to_id", null); - if (replyToIdStr != null && !replyToIdStr.equals("null")) { - replyToId = UUID.fromString(replyToIdStr); - } - - UUID originalMessageId = null; - String originalMessageIdStr = msgJson.optString("original_message_id", null); - if (originalMessageIdStr != null && !originalMessageIdStr.equals("null")) { - originalMessageId = UUID.fromString(originalMessageIdStr); - } - - UUID forwardedBy = null; - String forwardedByStr = msgJson.optString("forwarded_by", null); - if (forwardedByStr != null && !forwardedByStr.equals("null")) { - forwardedBy = UUID.fromString(forwardedByStr); - } - - UUID forwardedFrom = null; - String forwardedFromStr = msgJson.optString("forwarded_from", null); - if (forwardedFromStr != null && !forwardedFromStr.equals("null")) { - forwardedFrom = UUID.fromString(forwardedFromStr); - } - - Message msg = new Message( - UUID.fromString(msgJson.getString("message_id")), - UUID.fromString(msgJson.getString("sender_id")), - msgJson.getString("receiver_type"), - UUID.fromString(msgJson.getString("receiver_id")), - msgJson.getString("content"), - msgJson.getString("message_type"), - LocalDateTime.parse(msgJson.getString("send_at").replace(" ", "T")), - msgJson.getString("status"), - replyToId, - msgJson.getBoolean("is_edited"), - originalMessageId, - forwardedBy, - forwardedFrom, - msgJson.getBoolean("is_deleted_globally"), - LocalDateTime.parse(msgJson.getString("edited_at").replace(" ", "T")) - ); - - messages.add(msg); - } - } - - // Step 6: Add to active chats if not already present - boolean alreadyExists = Session.activeChats.stream() - .anyMatch(entry -> entry.getId().equals(chatId)); - if (!alreadyExists) { - ChatEntry savedEntry = new ChatEntry( - chatId, - "Saved-Messages", - "Saved Messages", - "📌", // or use a URL string if you have an icon for saved messages - "private", - messages.isEmpty() ? null : messages.get(messages.size() - 1).getSend_at() - ); - savedEntry.setSavedMessages(true); - Session.activeChats.add(savedEntry); - } - - // Step 7: Show chat - showSavedMessages(chatId, messages); - - } catch (Exception e) { - System.out.println("An error occurred while retrieving Saved Messages."); - e.printStackTrace(); - } - } - - private void showSavedMessages(UUID chatId, List messages) { +// private void showSavedMessages(UUID chatId, List messages) { // Scanner scanner = new Scanner(System.in); // // System.out.println("==== Saved Messages ===="); @@ -453,7 +453,7 @@ public class SidebarHandler { // System.out.println("[" + justSent.getSend_at() + "] " + justSent.getContent()); // } // } - } +// } // public void openSavedMessages() { diff --git a/src/main/java/org/to/telegramfinalproject/Server/ClientHandler.java b/src/main/java/org/to/telegramfinalproject/Server/ClientHandler.java index 4bdca06..06072e2 100644 --- a/src/main/java/org/to/telegramfinalproject/Server/ClientHandler.java +++ b/src/main/java/org/to/telegramfinalproject/Server/ClientHandler.java @@ -2555,16 +2555,16 @@ public class ClientHandler implements Runnable { break; } - case "get_saved_messages": { - UUID user_Id = UUID.fromString(requestJson.getString("user_id")); - response = SidebarService.handleGetSavedMessages(user_Id); - break; - } - - case "send_saved_messages": { - response = SidebarService.handleSendMessage(requestJson); - break; - } +// case "get_saved_messages": { +// UUID user_Id = UUID.fromString(requestJson.getString("user_id")); +// response = SidebarService.handleGetSavedMessages(user_Id); +// break; +// } +// +// case "send_saved_messages": { +// response = SidebarService.handleSendMessage(requestJson); +// break; +// } case "search_contacts": { String user_id = requestJson.getString("user_id"); diff --git a/src/main/java/org/to/telegramfinalproject/Server/SidebarService.java b/src/main/java/org/to/telegramfinalproject/Server/SidebarService.java index 94fb542..7bfb8e6 100644 --- a/src/main/java/org/to/telegramfinalproject/Server/SidebarService.java +++ b/src/main/java/org/to/telegramfinalproject/Server/SidebarService.java @@ -211,86 +211,81 @@ public class SidebarService { } } - public static ResponseModel handleGetSavedMessages(UUID userId) { - try { - - UUID chatId = PrivateChatDatabase.getOrCreateSavedMessagesChat(userId); - if (chatId == null) { - return new ResponseModel("error", "Failed to create or find saved messages chat."); - } - - List messages = MessageDatabase.privateChatHistory(chatId, userId); - - JSONArray messageArray = new JSONArray(); - if (!messages.isEmpty()) { - for (Message msg : messages) { - JSONObject msgJson = new JSONObject(); - msgJson.put("message_id", msg.getMessage_id().toString()); - msgJson.put("sender_id", msg.getSender_id().toString()); - msgJson.put("receiver_type", msg.getReceiver_type()); - msgJson.put("receiver_id", msg.getReceiver_id().toString()); - msgJson.put("content", msg.getContent()); - msgJson.put("message_type", msg.getMessage_type()); - msgJson.put("send_at", msg.getSend_at().toString()); // LocalDateTime - msgJson.put("status", msg.getStatus()); - msgJson.put("reply_to_id", msg.getReply_to_id() != null ? msg.getReply_to_id().toString() : JSONObject.NULL); - msgJson.put("is_edited", msg.isIs_edited()); - msgJson.put("original_message_id", msg.getOriginal_message_id() != null ? msg.getOriginal_message_id().toString() : JSONObject.NULL); - msgJson.put("forwarded_by", msg.getForwarded_by() != null ? msg.getForwarded_by().toString() : JSONObject.NULL); - msgJson.put("forwarded_from", msg.getForwarded_from() != null ? msg.getForwarded_from().toString() : JSONObject.NULL); - - messageArray.put(msgJson); - } - } - - JSONObject data = new JSONObject(); - data.put("chat_id", chatId.toString()); - data.put("messages", messageArray); - - return new ResponseModel("success", "Saved messages retrieved successfully", data); - - } catch (Exception e) { - e.printStackTrace(); - return new ResponseModel("error", "Unexpected server error."); - } - } +// public static ResponseModel handleGetSavedMessages(UUID userId) { +// try { +// +// UUID chatId = PrivateChatDatabase.getOrCreateSavedMessagesChat(userId); +// if (chatId == null) { +// return new ResponseModel("error", "Failed to create or find saved messages chat."); +// } +// +// List messages = MessageDatabase.privateChatHistory(chatId, userId); +// +// JSONArray messageArray = new JSONArray(); +// if (!messages.isEmpty()) { +// for (Message msg : messages) { +// JSONObject msgJson = new JSONObject(); +// msgJson.put("message_id", msg.getMessage_id().toString()); +// msgJson.put("sender_id", msg.getSender_id().toString()); +// msgJson.put("receiver_type", msg.getReceiver_type()); +// msgJson.put("receiver_id", msg.getReceiver_id().toString()); +// msgJson.put("content", msg.getContent()); +// msgJson.put("message_type", msg.getMessage_type()); +// msgJson.put("send_at", msg.getSend_at().toString()); // LocalDateTime +// msgJson.put("status", msg.getStatus()); +// msgJson.put("reply_to_id", msg.getReply_to_id() != null ? msg.getReply_to_id().toString() : JSONObject.NULL); +// msgJson.put("is_edited", msg.isIs_edited()); +// msgJson.put("original_message_id", msg.getOriginal_message_id() != null ? msg.getOriginal_message_id().toString() : JSONObject.NULL); +// msgJson.put("forwarded_by", msg.getForwarded_by() != null ? msg.getForwarded_by().toString() : JSONObject.NULL); +// msgJson.put("forwarded_from", msg.getForwarded_from() != null ? msg.getForwarded_from().toString() : JSONObject.NULL); +// +// messageArray.put(msgJson); +// } +// } +// +// JSONObject data = new JSONObject(); +// data.put("chat_id", chatId.toString()); +// data.put("messages", messageArray); +// +// return new ResponseModel("success", "Saved messages retrieved successfully", data); +// +// } catch (Exception e) { +// e.printStackTrace(); +// return new ResponseModel("error", "Unexpected server error."); +// } +// } // Save messages to DB - public static ResponseModel handleSendMessage(JSONObject requestJson) { - try { - Message message = new Message( - UUID.fromString(requestJson.getString("message_id")), - UUID.fromString(requestJson.getString("sender_id")), - requestJson.getString("receiver_type"), - UUID.fromString(requestJson.getString("receiver_id")), - requestJson.optString("content", null), - requestJson.optString("message_type", "TEXT"), - LocalDateTime.now(), // send_at - requestJson.optString("status", "SEND"), - requestJson.isNull("reply_to_id") ? null : UUID.fromString(requestJson.getString("reply_to_id")), - requestJson.optBoolean("is_edited", false), - requestJson.isNull("original_message_id") ? null : UUID.fromString(requestJson.getString("original_message_id")), - requestJson.isNull("forwarded_by") ? null : UUID.fromString(requestJson.getString("forwarded_by")), - requestJson.isNull("forwarded_from") ? null : UUID.fromString(requestJson.getString("forwarded_from")), - requestJson.optBoolean("is_deleted_globally", false), - requestJson.isNull("edited_at") ? null : - LocalDateTime.ofInstant( - Instant.ofEpochMilli(requestJson.getLong("edited_at")), - ZoneId.systemDefault() - ) - ); - - MessageDatabase.insertSavedMessage(message); - return new ResponseModel("success", "Message saved successfully."); - - } catch (Exception e) { - e.printStackTrace(); - return new ResponseModel("error", "Unexpected server error."); - } - } - - // Changes username - public static boolean updateUserName(String userId, String newUserName) { - return false; - } +// public static ResponseModel handleSendMessage(JSONObject requestJson) { +// try { +// Message message = new Message( +// UUID.fromString(requestJson.getString("message_id")), +// UUID.fromString(requestJson.getString("sender_id")), +// requestJson.getString("receiver_type"), +// UUID.fromString(requestJson.getString("receiver_id")), +// requestJson.optString("content", null), +// requestJson.optString("message_type", "TEXT"), +// LocalDateTime.now(), // send_at +// requestJson.optString("status", "SEND"), +// requestJson.isNull("reply_to_id") ? null : UUID.fromString(requestJson.getString("reply_to_id")), +// requestJson.optBoolean("is_edited", false), +// requestJson.isNull("original_message_id") ? null : UUID.fromString(requestJson.getString("original_message_id")), +// requestJson.isNull("forwarded_by") ? null : UUID.fromString(requestJson.getString("forwarded_by")), +// requestJson.isNull("forwarded_from") ? null : UUID.fromString(requestJson.getString("forwarded_from")), +// requestJson.optBoolean("is_deleted_globally", false), +// requestJson.isNull("edited_at") ? null : +// LocalDateTime.ofInstant( +// Instant.ofEpochMilli(requestJson.getLong("edited_at")), +// ZoneId.systemDefault() +// ) +// ); +// +// MessageDatabase.insertSavedMessage(message); +// return new ResponseModel("success", "Message saved successfully."); +// +// } catch (Exception e) { +// e.printStackTrace(); +// return new ResponseModel("error", "Unexpected server error."); +// } +// } } \ No newline at end of file