From ca04e4d80a3333f6443ae4a6a50d4b18bc2fa8fd Mon Sep 17 00:00:00 2001 From: bassant ehab Date: Sun, 17 Aug 2025 19:29:39 +0000 Subject: [PATCH 1/3] deleteProvider function --- Makefile | 3 +++ .../messaging/messages/deleteProvider.cpp | 22 +++++++++++++++++++ include/classes/Messaging.hpp | 6 +++++ src/services/Messaging.cpp | 19 ++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 examples/messaging/messages/deleteProvider.cpp diff --git a/Makefile b/Makefile index b435495..0a85ac8 100644 --- a/Makefile +++ b/Makefile @@ -254,6 +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) +deleteProvider: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteProvider.cpp + @mkdir -p ./$(TESTS_DIR) + $(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/deleteProvider $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteProvider.cpp $(LDFLAGS) # Messaging - Topics getTopic: $(SRCS) $(EXAMPLES_DIR)/messaging/topics/getTopic.cpp diff --git a/examples/messaging/messages/deleteProvider.cpp b/examples/messaging/messages/deleteProvider.cpp new file mode 100644 index 0000000..6de81c5 --- /dev/null +++ b/examples/messaging/messages/deleteProvider.cpp @@ -0,0 +1,22 @@ +#include "Appwrite.hpp" +#include + +int main() { + std::string projectId = "68853010003a3f4fc106"; + std::string apiKey = "standard_" + "50c2aa7697484afc2eeda7d9c289df216a2498d8dee455a6fc7c5a0d7ae477600dd349" + "6490784034269349bb21d571f16749abf550f4f32cc3c1e8eee5d7314cd1105288cffc" + "c4e33e31a7008cbd29f9046a676e848cf51d383eb7259a96394764141206777d2e701b" + "d985d345fcc1c1601659e277669155580dba56908569e7"; + std::string providerId = "68a22c7b00325882e4e5"; + + try { + Messaging messaging(projectId, apiKey); + std::string response = messaging.deleteProvider(providerId); + std::cout << "provider deleted!\nResponse: " << response << std::endl; + } catch (const AppwriteException &ex) { + std::cerr << "Exception: " << ex.what() << std::endl; + } + + return 0; +} diff --git a/include/classes/Messaging.hpp b/include/classes/Messaging.hpp index bc7c0bd..2a7d5f3 100644 --- a/include/classes/Messaging.hpp +++ b/include/classes/Messaging.hpp @@ -174,6 +174,12 @@ class Messaging { const std::vector &topicId = {}, const std::vector &userId = {}); + /** + * @brief Delete a provider. + * @param providerId ID of the provider + * @return JSON response + */ + std::string deleteProvider(const std::string &providerId); private: std::string projectId; ///< Project ID diff --git a/src/services/Messaging.cpp b/src/services/Messaging.cpp index 13b8916..181b541 100644 --- a/src/services/Messaging.cpp +++ b/src/services/Messaging.cpp @@ -528,4 +528,23 @@ std::string Messaging::updatePush(const std::string &messageId, "Error updating push message. Status code: " + std::to_string(statusCode) + "\n\nResponse: " + response); } +} + +std::string Messaging::deleteProvider(const std::string &providerId) { + if (providerId.empty()) { + throw AppwriteException("Missing required parameter: providerId"); + } + std::string url = + Config::API_BASE_URL + "/messaging/providers/" + providerId; + 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 "provider deleted successfully."; + } else { + throw AppwriteException("Failed to delete provider. Status code: " + + std::to_string(statusCode) + + "\nResponse: " + response); + } } \ No newline at end of file From 65c42b24136bcf6e2ffa29fa4238733106b1f9f8 Mon Sep 17 00:00:00 2001 From: bassant ehab Date: Sun, 17 Aug 2025 19:32:17 +0000 Subject: [PATCH 2/3] deleteProvider function --- examples/messaging/messages/deleteProvider.cpp | 9 +-------- include/classes/Messaging.hpp | 1 - 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/examples/messaging/messages/deleteProvider.cpp b/examples/messaging/messages/deleteProvider.cpp index 6de81c5..748079b 100644 --- a/examples/messaging/messages/deleteProvider.cpp +++ b/examples/messaging/messages/deleteProvider.cpp @@ -1,15 +1,9 @@ #include "Appwrite.hpp" #include - int main() { std::string projectId = "68853010003a3f4fc106"; - std::string apiKey = "standard_" - "50c2aa7697484afc2eeda7d9c289df216a2498d8dee455a6fc7c5a0d7ae477600dd349" - "6490784034269349bb21d571f16749abf550f4f32cc3c1e8eee5d7314cd1105288cffc" - "c4e33e31a7008cbd29f9046a676e848cf51d383eb7259a96394764141206777d2e701b" - "d985d345fcc1c1601659e277669155580dba56908569e7"; + std::string apiKey = ""; std::string providerId = "68a22c7b00325882e4e5"; - try { Messaging messaging(projectId, apiKey); std::string response = messaging.deleteProvider(providerId); @@ -17,6 +11,5 @@ int main() { } catch (const AppwriteException &ex) { std::cerr << "Exception: " << ex.what() << std::endl; } - return 0; } diff --git a/include/classes/Messaging.hpp b/include/classes/Messaging.hpp index 2a7d5f3..15e0a4a 100644 --- a/include/classes/Messaging.hpp +++ b/include/classes/Messaging.hpp @@ -180,7 +180,6 @@ class Messaging { * @return JSON response */ std::string deleteProvider(const std::string &providerId); - private: std::string projectId; ///< Project ID std::string apiKey; ///< API Key From 55b14bac08e777db5faa55e0960d071061287cab Mon Sep 17 00:00:00 2001 From: bassant ehab saber esmail <85416647+basant20415@users.noreply.github.com> Date: Thu, 21 Aug 2025 16:57:27 +0000 Subject: [PATCH 3/3] Update Messaging.cpp --- 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 df6c327..88a2254 100644 --- a/src/services/Messaging.cpp +++ b/src/services/Messaging.cpp @@ -629,4 +629,4 @@ std::string Messaging::listTargets(const std::string &messageId, "\n\nResponse: " + response); } -} \ No newline at end of file +}