From 8ef812c470f4e0e8dd45e3f4ea132928a2e1e492 Mon Sep 17 00:00:00 2001 From: bassant ehab Date: Sun, 3 Aug 2025 23:14:54 +0000 Subject: [PATCH 1/3] delete message function --- Makefile | 4 +++- .../messaging/messages/deleteMessages.cpp | 20 +++++++++++++++++++ include/classes/Messaging.hpp | 7 ++++++- src/services/Messaging.cpp | 18 +++++++++++++++++ 4 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 examples/messaging/messages/deleteMessages.cpp diff --git a/Makefile b/Makefile index b435495..3aa6895 100644 --- a/Makefile +++ b/Makefile @@ -254,7 +254,9 @@ getMessages: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/getMessages.cpp createMessage: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/createMessage.cpp @mkdir -p ./$(TESTS_DIR) $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/createMessage $(SRCS) $(EXAMPLES_DIR)/messaging/messages/createMessage.cpp $(LDFLAGS) - +deleteMessages: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp + @mkdir -p ./$(TESTS_DIR) + $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/deleteMessages $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp $(LDFLAGS) # Messaging - Topics getTopic: $(SRCS) $(EXAMPLES_DIR)/messaging/topics/getTopic.cpp @mkdir -p ./$(TESTS_DIR) diff --git a/examples/messaging/messages/deleteMessages.cpp b/examples/messaging/messages/deleteMessages.cpp new file mode 100644 index 0000000..4777dd4 --- /dev/null +++ b/examples/messaging/messages/deleteMessages.cpp @@ -0,0 +1,20 @@ +#include "Appwrite.hpp" +#include + +int main() { + std::string projectId = "68853010003a3f4fc106"; + std::string apiKey = ""; + std::string messageId = "6888d1e6000845ceb627"; + + try { + Appwrite appwrite(projectId, apiKey); + std::string response = + appwrite.getMessaging().deleteMessages(messageId); + std::cout << "Message deleted successfully! \nResponse: " << response + << std::endl; + } catch (const AppwriteException &ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + } + + return 0; +} \ No newline at end of file diff --git a/include/classes/Messaging.hpp b/include/classes/Messaging.hpp index bc7c0bd..7d1aaf9 100644 --- a/include/classes/Messaging.hpp +++ b/include/classes/Messaging.hpp @@ -174,7 +174,12 @@ class Messaging { const std::vector &topicId = {}, const std::vector &userId = {}); - + /** + * @brief Delete a message by its ID. + * @param messageId ID of the message. + * @return JSON response. + */ + std::string deleteMessages(const std::string &messageId); private: std::string projectId; ///< Project ID std::string apiKey; ///< API Key diff --git a/src/services/Messaging.cpp b/src/services/Messaging.cpp index 13b8916..3c27540 100644 --- a/src/services/Messaging.cpp +++ b/src/services/Messaging.cpp @@ -528,4 +528,22 @@ std::string Messaging::updatePush(const std::string &messageId, "Error updating push message. Status code: " + std::to_string(statusCode) + "\n\nResponse: " + response); } +} + +std::string Messaging::deleteMessages(const std::string &messageId) { + if (messageId.empty()) { + throw AppwriteException("Missing required parameter: messageId"); + } + std::string url = Config::API_BASE_URL + "/messaging/messages/" + messageId; + std::vector headers = Config::getHeaders(projectId); + headers.push_back("X-Appwrite-Key: " + apiKey); + std::string response; + int statusCode = Utils::deleteRequest(url, headers, response); + if (statusCode == HttpStatus::DELETED) { + return "Message deleted."; + } else { + throw AppwriteException("Failed to delete message. Status code: " + + std::to_string(statusCode) + + "\nResponse: " + response); + } } \ No newline at end of file From 1ff91e4236c336841034486dfe25fc9389358a21 Mon Sep 17 00:00:00 2001 From: bassant ehab Date: Sun, 3 Aug 2025 23:18:17 +0000 Subject: [PATCH 2/3] removed excess spaces from delete function --- Makefile | 3 ++- examples/messaging/messages/deleteMessages.cpp | 3 --- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 3aa6895..81ccb07 100644 --- a/Makefile +++ b/Makefile @@ -256,7 +256,8 @@ createMessage: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/createMessage.cpp $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/createMessage $(SRCS) $(EXAMPLES_DIR)/messaging/messages/createMessage.cpp $(LDFLAGS) deleteMessages: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp @mkdir -p ./$(TESTS_DIR) - $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/deleteMessages $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp $(LDFLAGS) + $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/deleteMessages $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp $(LDFLAGS) + # Messaging - Topics getTopic: $(SRCS) $(EXAMPLES_DIR)/messaging/topics/getTopic.cpp @mkdir -p ./$(TESTS_DIR) diff --git a/examples/messaging/messages/deleteMessages.cpp b/examples/messaging/messages/deleteMessages.cpp index 4777dd4..abcbcfb 100644 --- a/examples/messaging/messages/deleteMessages.cpp +++ b/examples/messaging/messages/deleteMessages.cpp @@ -1,11 +1,9 @@ #include "Appwrite.hpp" #include - int main() { std::string projectId = "68853010003a3f4fc106"; std::string apiKey = ""; std::string messageId = "6888d1e6000845ceb627"; - try { Appwrite appwrite(projectId, apiKey); std::string response = @@ -15,6 +13,5 @@ int main() { } catch (const AppwriteException &ex) { std::cerr << "Exception: " << ex.what() << std::endl; } - return 0; } \ No newline at end of file From 684f0cf91c63f2a2926e6e693480ed512be57f1d Mon Sep 17 00:00:00 2001 From: Pooranjoy Date: Mon, 4 Aug 2025 20:56:49 +0530 Subject: [PATCH 3/3] format: deleteMessages --- Makefile | 4 ++-- examples/messaging/messages/deleteMessages.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 81ccb07..16a31cc 100644 --- a/Makefile +++ b/Makefile @@ -255,8 +255,8 @@ createMessage: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/createMessage.cpp @mkdir -p ./$(TESTS_DIR) $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/createMessage $(SRCS) $(EXAMPLES_DIR)/messaging/messages/createMessage.cpp $(LDFLAGS) deleteMessages: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp - @mkdir -p ./$(TESTS_DIR) - $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/deleteMessages $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp $(LDFLAGS) + @mkdir -p ./$(TESTS_DIR) + $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/deleteMessages $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp $(LDFLAGS) # Messaging - Topics getTopic: $(SRCS) $(EXAMPLES_DIR)/messaging/topics/getTopic.cpp diff --git a/examples/messaging/messages/deleteMessages.cpp b/examples/messaging/messages/deleteMessages.cpp index abcbcfb..a1d9f76 100644 --- a/examples/messaging/messages/deleteMessages.cpp +++ b/examples/messaging/messages/deleteMessages.cpp @@ -3,7 +3,7 @@ int main() { std::string projectId = "68853010003a3f4fc106"; std::string apiKey = ""; - std::string messageId = "6888d1e6000845ceb627"; + std::string messageId = ""; try { Appwrite appwrite(projectId, apiKey); std::string response =