From 8dfae7d009b52a5d34e54897020b6a4fc632acbc Mon Sep 17 00:00:00 2001 From: bassant ehab Date: Sun, 3 Aug 2025 23:33:29 +0000 Subject: [PATCH 1/4] list message logs function --- Makefile | 5 ++++- .../messaging/messages/listMessageLogs.cpp | 18 +++++++++++++++++ include/classes/Messaging.hpp | 8 +++++++- src/services/Messaging.cpp | 20 +++++++++++++++++++ 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 examples/messaging/messages/listMessageLogs.cpp diff --git a/Makefile b/Makefile index b435495..069450d 100644 --- a/Makefile +++ b/Makefile @@ -254,7 +254,10 @@ 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) - +listMessageLogs: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listMessageLogs.cpp + @mkdir -p ./$(TESTS_DIR) + $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/listMessageLogs $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listMessageLogs.cpp $(LDFLAGS) + # Messaging - Topics getTopic: $(SRCS) $(EXAMPLES_DIR)/messaging/topics/getTopic.cpp @mkdir -p ./$(TESTS_DIR) diff --git a/examples/messaging/messages/listMessageLogs.cpp b/examples/messaging/messages/listMessageLogs.cpp new file mode 100644 index 0000000..dabb8be --- /dev/null +++ b/examples/messaging/messages/listMessageLogs.cpp @@ -0,0 +1,18 @@ +#include "Appwrite.hpp" +#include +int main() { + std::string projectId = "68853010003a3f4fc106"; + std::string apiKey = ""; + std::string messageId = "688e98ba00107a10f041"; + Appwrite appwrite(projectId, apiKey); + Queries queries; + queries.queryLimit(50); + try { + std::string response = + appwrite.getMessaging().listMessageLogs(messageId, queries); + std::cout << "Message logs fetched! \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..c32a52c 100644 --- a/include/classes/Messaging.hpp +++ b/include/classes/Messaging.hpp @@ -174,7 +174,13 @@ class Messaging { const std::vector &topicId = {}, const std::vector &userId = {}); - + /** + * @brief List all message logs with optional filters. + * @param messageId ID of the message + * @param queries Query parameters for filtering + * @return JSON string of messageLog list + */ + std::string listMessageLogs(const std::string &messageId, Queries &queries); 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..06cb042 100644 --- a/src/services/Messaging.cpp +++ b/src/services/Messaging.cpp @@ -528,4 +528,24 @@ std::string Messaging::updatePush(const std::string &messageId, "Error updating push message. Status code: " + std::to_string(statusCode) + "\n\nResponse: " + response); } +} + +std::string Messaging::listMessageLogs(const std::string &messageId, + Queries &queries) { + if (messageId.empty()) { + throw AppwriteException("Missing required parameter: messageId"); + } + std::string url = + Config::API_BASE_URL + "/messaging/messages/" + messageId + "/logs"; + std::vector headers = Config::getHeaders(projectId); + headers.push_back("X-Appwrite-Key: " + apiKey); + std::string response; + int statusCode = Utils::getRequest(url, headers, response); + if (statusCode == HttpStatus::OK) { + return response; + } else { + throw AppwriteException("Error listing message logs. Status code: " + + std::to_string(statusCode) + + "\nResponse: " + response); + } } \ No newline at end of file From 7ac2cf4f45c15f383bbd9a33b25b30ce53252a61 Mon Sep 17 00:00:00 2001 From: bassant ehab Date: Wed, 6 Aug 2025 16:00:02 +0000 Subject: [PATCH 2/4] closing brace --- src/services/Messaging.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/services/Messaging.cpp b/src/services/Messaging.cpp index 06cb042..053b777 100644 --- a/src/services/Messaging.cpp +++ b/src/services/Messaging.cpp @@ -544,8 +544,6 @@ std::string Messaging::listMessageLogs(const std::string &messageId, if (statusCode == HttpStatus::OK) { return response; } else { - throw AppwriteException("Error listing message logs. Status code: " + - std::to_string(statusCode) + - "\nResponse: " + response); + throw AppwriteException("Error listing message logs. Status code: " +std::to_string(statusCode) +"\nResponse: " + response); } } \ No newline at end of file From f48956566c3e9182f8cd0c8251a85b6e3102b20b Mon Sep 17 00:00:00 2001 From: bassant ehab Date: Wed, 6 Aug 2025 16:59:52 +0000 Subject: [PATCH 3/4] closing brace --- src/services/Messaging.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/Messaging.cpp b/src/services/Messaging.cpp index 053b777..1f9963a 100644 --- a/src/services/Messaging.cpp +++ b/src/services/Messaging.cpp @@ -544,6 +544,6 @@ std::string Messaging::listMessageLogs(const std::string &messageId, if (statusCode == HttpStatus::OK) { return response; } else { - throw AppwriteException("Error listing message logs. Status code: " +std::to_string(statusCode) +"\nResponse: " + response); + throw AppwriteException("Error listing message logs. Status code: " +std::to_string(statusCode) + "\nResponse: " + response); } } \ No newline at end of file From e85c5655d437bf7747aee77b65626850c12b81d8 Mon Sep 17 00:00:00 2001 From: Pooranjoy Date: Thu, 7 Aug 2025 13:40:56 +0530 Subject: [PATCH 4/4] fix: clang-format --- Makefile | 4 ++-- examples/messaging/messages/listMessageLogs.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 2964e43..5b8d5d9 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) listMessageLogs: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listMessageLogs.cpp - @mkdir -p ./$(TESTS_DIR) - $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/listMessageLogs $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listMessageLogs.cpp $(LDFLAGS) + @mkdir -p ./$(TESTS_DIR) + $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/listMessageLogs $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listMessageLogs.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) diff --git a/examples/messaging/messages/listMessageLogs.cpp b/examples/messaging/messages/listMessageLogs.cpp index dabb8be..d898245 100644 --- a/examples/messaging/messages/listMessageLogs.cpp +++ b/examples/messaging/messages/listMessageLogs.cpp @@ -1,16 +1,19 @@ #include "Appwrite.hpp" #include int main() { - std::string projectId = "68853010003a3f4fc106"; + std::string projectId = "66fbb5a100070a3a1d19"; std::string apiKey = ""; std::string messageId = "688e98ba00107a10f041"; + Appwrite appwrite(projectId, apiKey); Queries queries; + queries.queryLimit(50); try { std::string response = appwrite.getMessaging().listMessageLogs(messageId, queries); - std::cout << "Message logs fetched! \nResponse: " << response<< std::endl; + std::cout << "Message logs fetched! \nResponse: " << response + << std::endl; } catch (const AppwriteException &ex) { std::cerr << "Exception: " << ex.what() << std::endl; }