From 274c26279884ad18bc43f8607daef5cdf99ff757 Mon Sep 17 00:00:00 2001 From: bassant ehab Date: Mon, 8 Sep 2025 18:06:17 +0000 Subject: [PATCH 1/2] list provider logs function --- Makefile | 3 +++ .../messaging/messages/listProviderLogs.cpp | 24 +++++++++++++++++++ include/classes/Messaging.hpp | 8 +++++++ src/services/Messaging.cpp | 20 ++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 examples/messaging/messages/listProviderLogs.cpp diff --git a/Makefile b/Makefile index b435495..1ce56d8 100644 --- a/Makefile +++ b/Makefile @@ -255,6 +255,9 @@ 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) +listProviderLogs: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listProviderLogs.cpp + @mkdir -p ./$(TESTS_DIR) + $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/listProviderLogs $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listProviderLogs.cpp $(LDFLAGS) # Messaging - Topics getTopic: $(SRCS) $(EXAMPLES_DIR)/messaging/topics/getTopic.cpp @mkdir -p ./$(TESTS_DIR) diff --git a/examples/messaging/messages/listProviderLogs.cpp b/examples/messaging/messages/listProviderLogs.cpp new file mode 100644 index 0000000..1e781dd --- /dev/null +++ b/examples/messaging/messages/listProviderLogs.cpp @@ -0,0 +1,24 @@ +#include "Appwrite.hpp" +#include +int main() { + std::string projectId = "68853010003a3f4fc106"; + std::string apiKey = + "standard_" + "50c2aa7697484afc2eeda7d9c289df216a2498d8dee455a6fc7c5a0d7ae477600dd349" + "6490784034269349bb21d571f16749abf550f4f32cc3c1e8eee5d7314cd1105288cffc" + "c4e33e31a7008cbd29f9046a676e848cf51d383eb7259a96394764141206777d2e701b" + "d985d345fcc1c1601659e277669155580dba56908569e7"; + std::string providerId = "68bf146d003761d36496"; + Appwrite appwrite(projectId, apiKey); + Queries queries; + queries.queryLimit(50); + try { + std::string response = + appwrite.getMessaging().listProviderLogs(providerId, queries); + std::cout << "provider 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..2b972c3 100644 --- a/include/classes/Messaging.hpp +++ b/include/classes/Messaging.hpp @@ -174,6 +174,14 @@ class Messaging { const std::vector &topicId = {}, const std::vector &userId = {}); + /** + * @brief List all provider logs. + * @param topicId ID of the provider + * @param queries Optional query filters + * @return JSON string of provider logs list + */ + std::string listProviderLogs(const std::string &providerId, + Queries &queries); private: std::string projectId; ///< Project ID diff --git a/src/services/Messaging.cpp b/src/services/Messaging.cpp index 13b8916..3a00866 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::listProviderLogs(const std::string &providerId, + Queries &queries) { + if (providerId.empty()) { + throw AppwriteException("Missing required parameter: providerId"); + } + std::string url = + Config::API_BASE_URL + "/messaging/providers/" + providerId + "/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 providers logs. Status code: " + + std::to_string(statusCode) + + "\nResponse: " + response); + } } \ No newline at end of file From 5d0c44b7a4bb5e7e0ab274290c0662439998c38f Mon Sep 17 00:00:00 2001 From: bassant ehab Date: Mon, 8 Sep 2025 18:09:35 +0000 Subject: [PATCH 2/2] removing unnecessary data from list provider logs function --- Makefile | 1 + examples/messaging/messages/listProviderLogs.cpp | 7 +------ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 1ce56d8..2b24560 100644 --- a/Makefile +++ b/Makefile @@ -258,6 +258,7 @@ createMessage: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/createMessage.cpp listProviderLogs: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listProviderLogs.cpp @mkdir -p ./$(TESTS_DIR) $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/listProviderLogs $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listProviderLogs.cpp $(LDFLAGS) + # Messaging - Topics getTopic: $(SRCS) $(EXAMPLES_DIR)/messaging/topics/getTopic.cpp @mkdir -p ./$(TESTS_DIR) diff --git a/examples/messaging/messages/listProviderLogs.cpp b/examples/messaging/messages/listProviderLogs.cpp index 1e781dd..02577c4 100644 --- a/examples/messaging/messages/listProviderLogs.cpp +++ b/examples/messaging/messages/listProviderLogs.cpp @@ -2,12 +2,7 @@ #include int main() { std::string projectId = "68853010003a3f4fc106"; - std::string apiKey = - "standard_" - "50c2aa7697484afc2eeda7d9c289df216a2498d8dee455a6fc7c5a0d7ae477600dd349" - "6490784034269349bb21d571f16749abf550f4f32cc3c1e8eee5d7314cd1105288cffc" - "c4e33e31a7008cbd29f9046a676e848cf51d383eb7259a96394764141206777d2e701b" - "d985d345fcc1c1601659e277669155580dba56908569e7"; + std::string apiKey = ""; std::string providerId = "68bf146d003761d36496"; Appwrite appwrite(projectId, apiKey); Queries queries;