diff --git a/include/matrixclient.h b/include/matrixclient.h index 66c351f..e6d78d9 100644 --- a/include/matrixclient.h +++ b/include/matrixclient.h @@ -84,6 +84,7 @@ public: std::string sendText(std::string roomId, std::string text); std::string sendMessage(std::string roomId, json_t* content); std::string sendEvent(std::string roomId, std::string eventType, json_t* content); + void sendEventToDevice(const std::string& eventType, json_t* devices, json_t* content); json_t* getStateEvent(std::string roomId, std::string type, std::string stateKey); std::string sendStateEvent(std::string roomId, std::string type, std::string stateKey, json_t* content); std::string redactEvent(std::string roomId, std::string eventId, std::string reason = ""); diff --git a/source/matrixclient.cpp b/source/matrixclient.cpp index ddf1e23..cfe22cd 100644 --- a/source/matrixclient.cpp +++ b/source/matrixclient.cpp @@ -369,6 +369,13 @@ std::string Client::sendMessage(std::string roomId, json_t* content) { return sendEvent(roomId, "m.room.message", content); } +void Client::sendEventToDevice(const std::string& eventType, json_t* devices, json_t* content){ + std::string txid = std::to_string(time(nullptr)) + "_REQ_" + std::to_string(requestId); + std::string path = "/_matrix/client/v3/sendToDevice/" + urlencode(eventType) + "/" + urlencode(txid); + json_t* ret = doRequest("PUT", path, content); + if (ret) json_decref(ret); +} + std::string Client::sendEvent(std::string roomId, std::string eventType, json_t* content) { roomId = resolveRoom(roomId); std::string txid = std::to_string(time(NULL)) + "_REQ_" + std::to_string(requestId);