forked from CPP-Final-Project/Chat_Server
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDBMessage.cpp
More file actions
143 lines (114 loc) · 3.44 KB
/
DBMessage.cpp
File metadata and controls
143 lines (114 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//
// Created by Admin on 5/24/2023.
//
#include "DBMessage.h"
QJsonObject DBEntity::DBMessage::toJson() const {
QJsonObject obj;
obj["id"] = id.toString();
obj["date_time"] = date_time.toString();
obj["login"] = login;
obj["parent_id"] = parent_id;
obj["text"] = text;
obj["media"] = media.isNull()?"":media;
obj["deleted"] = deleted;
QJsonObject json;
QMapIterator<QString, bool> i(likes);
while (i.hasNext()) {
i.next();
json.insert(i.key(), i.value());
}
obj["likes"] = json;
return obj;
}
void DBEntity::DBMessage::fromJson(const QJsonObject &obj_) {
id = QUuid::fromString(obj_.value("id").toString());
date_time = QDateTime::fromString(obj_.value("date_time").toString());
login = obj_.value("login").toString();
// todo: parent id
// parent_id = obj.value("parent_id").toString();
text = obj_.value("text").toString();
media = obj_.value("media").toString();
likes.clear();
const auto temp = obj_.value("likes").toObject().toVariantMap();
for (auto it =temp.constBegin(); it != temp.constEnd(); ++it)
{
likes.insert(it.key() , it.value().toBool());
}
}
DBEntity::DBMessage::DBMessage()
{
}
bool DBEntity::DBMessage::isRtl() const
{
return is_rtl;
}
void DBEntity::DBMessage::setDeleted(const bool flag_) {
DBMessage::deleted = flag_;
}
void DBEntity::DBMessage::setLikes(const QMap<QString, bool> &likes_) {
DBMessage::likes = likes_;
}
void DBEntity::DBMessage::addLike(const QString& login_, const bool like_or_dislike_) {
likes.insert(login_, like_or_dislike_);
}
//void DBEntity::DBMessage::writeMessages(const QString& file_name_,const QList<DBEntity::DBMessage>& messages_) {
//
// QJsonArray array;
// for (const auto& message: messages_) {
// array.append(message.toJson());
// }
// if (!FileRepository::writeJsonArr(file_name_, array)){
// PLOGE << "Error writing to file";
// }
//
//}
//
//void DBEntity::DBMessage::writeMessage(const QString& file_name_,const DBEntity::DBMessage& messages_) {
//
// QJsonArray array;
//
// array.append(messages_.toJson());
//
// if (!FileRepository::writeJsonArr(file_name_, array)){
// PLOGE << "Error writing to file";
// }
// PLOGI << "Writing message successfully";
//}
const QDateTime &DBEntity::DBMessage::getDateTime() const {
return date_time;
}
const QString &DBEntity::DBMessage::getLogin() const {
return login;
}
QString DBEntity::DBMessage::getParentId() const {
return parent_id;
}
const QString &DBEntity::DBMessage::getText() const {
return text;
}
const QString &DBEntity::DBMessage::getMedia() const {
return media;
}
bool DBEntity::DBMessage::isDeleted() const {
return deleted;
}
const QMap<QString, bool> &DBEntity::DBMessage::getLikes() const {
return likes;
}
const QUuid &DBEntity::DBMessage::getId() const {
return id;
}
DBEntity::DBMessage::DBMessage(const QUuid& id_, const QDateTime& date_time_, const QString& login_,
const QString& text_, const QString& media_, const QString& parent_id_, const bool is_rtl_
)
{
id = id_;
date_time = date_time_;
login = login_;
text = text_;
media = media_;
parent_id = parent_id_;
is_rtl = is_rtl_;
}
//TODO: заглушка парсера
//DBEntity::DBMessage::DBMessage(User_Message* message, QObject* parent_) : QObject(parent_) { ; }