Skip to content

Commit 05bb8c2

Browse files
authored
getProvider function (#124)
1 parent f0ce2f2 commit 05bb8c2

File tree

4 files changed

+48
-3
lines changed

4 files changed

+48
-3
lines changed

Makefile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,9 @@ getMessages: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/getMessages.cpp
254254
createMessage: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/createMessage.cpp
255255
@mkdir -p ./$(TESTS_DIR)
256256
$(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/createMessage $(SRCS) $(EXAMPLES_DIR)/messaging/messages/createMessage.cpp $(LDFLAGS)
257+
getProvider: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/getProvider.cpp
258+
@mkdir -p ./$(TESTS_DIR)
259+
$(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/getProvider $(SRCS) $(EXAMPLES_DIR)/messaging/messages/getProvider.cpp $(LDFLAGS)
257260
listProviders: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listProviders.cpp
258261
@mkdir -p ./$(TESTS_DIR)
259262
$(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/listProviders $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listProviders.cpp $(LDFLAGS)
@@ -262,11 +265,11 @@ listMessageLogs: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listMessageLogs.cpp
262265
$(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/listMessageLogs $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listMessageLogs.cpp $(LDFLAGS)
263266
deleteMessages: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp
264267
@mkdir -p ./$(TESTS_DIR)
265-
$(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/deleteMessages $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp $(LDFLAGS)
266-
268+
$(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/deleteMessages $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp $(LDFLAGS)
267269
listTargets: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listTargets.cpp
268270
@mkdir -p ./$(TESTS_DIR)
269271
$(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/listTargets $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listTargets.cpp $(LDFLAGS)
272+
270273
# Messaging - Topics
271274
getTopic: $(SRCS) $(EXAMPLES_DIR)/messaging/topics/getTopic.cpp
272275
@mkdir -p ./$(TESTS_DIR)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#include "Appwrite.hpp"
2+
#include <iostream>
3+
int main() {
4+
std::string projectId = "68853010003a3f4fc106";
5+
std::string apiKey = "";
6+
std::string providerId = "689a4547001864da9330";
7+
try {
8+
Messaging messaging(projectId, apiKey);
9+
std::string response = messaging.getProvider(providerId);
10+
std::cout << "provider Fetched!\nResponse: " << response << std::endl;
11+
} catch (const AppwriteException &ex) {
12+
std::cerr << "Exception: " << ex.what() << std::endl;
13+
}
14+
return 0;
15+
}

include/classes/Messaging.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,13 @@ class Messaging {
181181
*/
182182
std::string listProviders(Queries &queries);
183183

184+
/**
185+
* @brief Get a specific provider by ID.
186+
* @param providerId ID of the provider
187+
* @return JSON string of the provider details
188+
*/
189+
std::string getProvider(const std::string &providerId);
190+
184191
/**
185192
* @brief List all message logs with optional filters.
186193
* @param messageId ID of the message

src/services/Messaging.cpp

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,6 +530,25 @@ std::string Messaging::updatePush(const std::string &messageId,
530530
}
531531
}
532532

533+
std::string Messaging::getProvider(const std::string &providerId) {
534+
if (providerId.empty()) {
535+
throw AppwriteException("Missing required parameter: providerId");
536+
}
537+
std::string url =
538+
Config::API_BASE_URL + "/messaging/providers/" + providerId;
539+
std::vector<std::string> headers = Config::getHeaders(projectId);
540+
headers.push_back("X-Appwrite-Key: " + apiKey);
541+
std::string response;
542+
int statusCode = Utils::getRequest(url, headers, response);
543+
if (statusCode == HttpStatus::OK) {
544+
return response;
545+
} else {
546+
throw AppwriteException("Error fetching provider. Status code: " +
547+
std::to_string(statusCode) +
548+
"\nResponse: " + response);
549+
}
550+
}
551+
533552
std::string Messaging::listProviders(Queries &queries) {
534553
std::string url = Config::API_BASE_URL + "/messaging/providers";
535554
std::vector<std::string> headers = Config::getHeaders(projectId);
@@ -611,4 +630,5 @@ std::string Messaging::listTargets(const std::string &messageId,
611630
"Error fetching message targets. Status code: " + std::to_string(statusCode) +
612631
"\n\nResponse: " + response);
613632
}
614-
}
633+
}
634+

0 commit comments

Comments
 (0)