Merge pull request #270 from Chethan2k1/device-verification
Device verification and Cross-Signing
1 files changed, 18 insertions, 4 deletions
diff --git a/src/EventAccessors.cpp b/src/EventAccessors.cpp
index 88612b14..b62be9a5 100644
--- a/src/EventAccessors.cpp
+++ b/src/EventAccessors.cpp
@@ -39,8 +39,15 @@ struct EventMsgType
template<class T>
mtx::events::MessageType operator()(const mtx::events::Event<T> &e)
{
- if constexpr (is_detected<msgtype_t, T>::value)
- return mtx::events::getMessageType(e.content.msgtype);
+ if constexpr (is_detected<msgtype_t, T>::value) {
+ if constexpr (std::is_same_v<std::optional<std::string>,
+ std::remove_cv_t<decltype(e.content.msgtype)>>)
+ return mtx::events::getMessageType(e.content.msgtype.value());
+ else if constexpr (std::is_same_v<
+ std::string,
+ std::remove_cv_t<decltype(e.content.msgtype)>>)
+ return mtx::events::getMessageType(e.content.msgtype);
+ }
return mtx::events::MessageType::Unknown;
}
};
@@ -97,8 +104,15 @@ struct EventBody
template<class T>
std::string operator()(const mtx::events::Event<T> &e)
{
- if constexpr (is_detected<body_t, T>::value)
- return e.content.body;
+ if constexpr (is_detected<body_t, T>::value) {
+ if constexpr (std::is_same_v<std::optional<std::string>,
+ std::remove_cv_t<decltype(e.content.body)>>)
+ return e.content.body ? e.content.body.value() : "";
+ else if constexpr (std::is_same_v<
+ std::string,
+ std::remove_cv_t<decltype(e.content.body)>>)
+ return e.content.body;
+ }
return "";
}
};
|