Skip to content

Commit 7ffd420

Browse files
feat: listMessageLogs [messaging] (#118)
* list message logs function * closing brace * closing brace * fix: clang-format --------- Co-authored-by: Pooranjoy <pooranjoyb2016@gmail.com>
1 parent 70a3b33 commit 7ffd420

File tree

4 files changed

+52
-0
lines changed

4 files changed

+52
-0
lines changed

Makefile

Lines changed: 3 additions & 0 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+
listMessageLogs: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listMessageLogs.cpp
258+
@mkdir -p ./$(TESTS_DIR)
259+
$(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/listMessageLogs $(SRCS) $(EXAMPLES_DIR)/messaging/messages/listMessageLogs.cpp $(LDFLAGS)
257260
deleteMessages: $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp
258261
@mkdir -p ./$(TESTS_DIR)
259262
$(CXX) $(CXXFLAGS) -o ./$(TESTS_DIR)/deleteMessages $(SRCS) $(EXAMPLES_DIR)/messaging/messages/deleteMessages.cpp $(LDFLAGS)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#include "Appwrite.hpp"
2+
#include <iostream>
3+
int main() {
4+
std::string projectId = "66fbb5a100070a3a1d19";
5+
std::string apiKey = "";
6+
std::string messageId = "688e98ba00107a10f041";
7+
8+
Appwrite appwrite(projectId, apiKey);
9+
Queries queries;
10+
11+
queries.queryLimit(50);
12+
try {
13+
std::string response =
14+
appwrite.getMessaging().listMessageLogs(messageId, queries);
15+
std::cout << "Message logs fetched! \nResponse: " << response
16+
<< std::endl;
17+
} catch (const AppwriteException &ex) {
18+
std::cerr << "Exception: " << ex.what() << std::endl;
19+
}
20+
return 0;
21+
}

include/classes/Messaging.hpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,20 @@ class Messaging {
175175
const std::vector<std::string> &userId = {});
176176

177177
/**
178+
* @brief List all message logs with optional filters.
179+
* @param messageId ID of the message
180+
* @param queries Query parameters for filtering
181+
* @return JSON string of messageLog list
182+
*/
183+
std::string listMessageLogs(const std::string &messageId, Queries &queries);
184+
185+
/**
178186
* @brief Delete a message by its ID.
179187
* @param messageId ID of the message.
180188
* @return JSON response.
181189
*/
182190
std::string deleteMessages(const std::string &messageId);
191+
183192
private:
184193
std::string projectId; ///< Project ID
185194
std::string apiKey; ///< API Key

src/services/Messaging.cpp

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

533+
534+
std::string Messaging::listMessageLogs(const std::string &messageId,
535+
Queries &queries) {
536+
if (messageId.empty()) {
537+
throw AppwriteException("Missing required parameter: messageId");
538+
}
539+
std::string url =
540+
Config::API_BASE_URL + "/messaging/messages/" + messageId + "/logs";
541+
std::vector<std::string> headers = Config::getHeaders(projectId);
542+
headers.push_back("X-Appwrite-Key: " + apiKey);
543+
std::string response;
544+
int statusCode = Utils::getRequest(url, headers, response);
545+
if (statusCode == HttpStatus::OK) {
546+
return response;
547+
} else {
548+
throw AppwriteException("Error listing message logs. Status code: " +std::to_string(statusCode) + "\nResponse: " + response);
549+
}
550+
}
551+
533552
std::string Messaging::deleteMessages(const std::string &messageId) {
534553
if (messageId.empty()) {
535554
throw AppwriteException("Missing required parameter: messageId");

0 commit comments

Comments
 (0)