From 7abdc7ec386776602758d84edc6b583d6dad4ecd Mon Sep 17 00:00:00 2001 From: Kitsune Ral Date: Tue, 5 Apr 2016 20:46:45 +0300 Subject: Imported the current source tree from Quaternion/lib. --- events/roommessageevent.cpp | 101 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 events/roommessageevent.cpp (limited to 'events/roommessageevent.cpp') diff --git a/events/roommessageevent.cpp b/events/roommessageevent.cpp new file mode 100644 index 00000000..ea03986b --- /dev/null +++ b/events/roommessageevent.cpp @@ -0,0 +1,101 @@ +/****************************************************************************** + * Copyright (C) 2015 Felix Rohrbach + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "roommessageevent.h" + +#include +#include +#include + +using namespace QMatrixClient; + +class RoomMessageEvent::Private +{ + public: + Private() {} + + QString userId; + QString body; + QString msgtype; + QDateTime hsob_ts; +}; + +RoomMessageEvent::RoomMessageEvent() + : Event(EventType::RoomMessage) + , d(new Private) +{ + +} + +RoomMessageEvent::~RoomMessageEvent() +{ + delete d; +} + +QString RoomMessageEvent::userId() const +{ + return d->userId; +} + +QString RoomMessageEvent::msgtype() const +{ + return d->msgtype; +} + +QString RoomMessageEvent::body() const +{ + return d->body; +} + +QDateTime RoomMessageEvent::hsob_ts() const +{ + return d->hsob_ts; +} + +RoomMessageEvent* RoomMessageEvent::fromJson(const QJsonObject& obj) +{ + RoomMessageEvent* e = new RoomMessageEvent(); + e->parseJson(obj); + if( obj.contains("sender") ) + { + e->d->userId = obj.value("sender").toString(); + } else { + qDebug() << "RoomMessageEvent: user_id not found"; + } + if( obj.contains("content") ) + { + QJsonObject content = obj.value("content").toObject(); + if( content.contains("msgtype") ) + { + e->d->msgtype = content.value("msgtype").toString(); + } else { + qDebug() << "RoomMessageEvent: msgtype not found"; + } + if( content.contains("body") ) + { + e->d->body = content.value("body").toString(); + } else { + qDebug() << "RoomMessageEvent: body not found"; + } +// e->d->hsob_ts = QDateTime::fromMSecsSinceEpoch( content.value("hsoc_ts").toInt() ); +// } else { +// qDebug() << "RoomMessageEvent: hsoc_ts not found"; +// } + } + return e; +} \ No newline at end of file -- cgit v1.2.3