MCPcopy Create free account
hub / github.com/blizzard4591/openMittsu / resetQueueStatus

Method resetQueueStatus

src/database/internal/DatabaseControlMessage.cpp:85–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83 }
84
85 bool DatabaseControlMessage::resetQueueStatus(InternalDatabaseInterface* database, int maxAgeInSeconds) {
86 QSqlQuery query(database->getQueryObject());
87
88 openmittsu::protocol::MessageTime const limit(QDateTime::currentDateTime().addSecs(-maxAgeInSeconds));
89 query.prepare(QStringLiteral("SELECT `identity`, `apiid`, `related_message_apiid`, `uid`, `control_message_type` FROM `control_messages` WHERE `is_outbox` = 1 AND `is_queued` = 1 AND `is_sent` = 0 AND ((`modified_at` <= %1) OR (`modified_at` IS NULL));").arg(limit.getMessageTimeMSecs()));
90 if (!query.exec() || !query.isSelect()) {
91 throw openmittsu::exceptions::InternalErrorException() << "Could not execute control message queue reset query for table control_messages. Query error: " << query.lastError().text().toStdString();
92 }
93
94 bool hasAtLeastOneEntry = false;
95 while (query.next()) {
96 hasAtLeastOneEntry = true;
97 ControlMessageType const messageType = ControlMessageTypeHelper::fromString(query.value(QStringLiteral("control_message_type")).toString());
98 openmittsu::protocol::ContactId const receiver(query.value(QStringLiteral("identity")).toString());
99 openmittsu::protocol::MessageId const messageId(query.value(QStringLiteral("apiid")).toString());
100 openmittsu::protocol::MessageId const relatedMessageId(query.value(QStringLiteral("related_message_apiid")).toString());
101 DatabaseControlMessage message(database, receiver, messageId, relatedMessageId, messageType);
102 message.setIsQueued(false);
103 }
104
105 return hasAtLeastOneEntry;
106 }
107
108 QString DatabaseControlMessage::getWhereString() const {
109 return QStringLiteral("`identity` = :identity");

Callers

nothing calls this directly

Calls 6

getQueryObjectMethod · 0.80
getMessageTimeMSecsMethod · 0.80
valueMethod · 0.80
setIsQueuedMethod · 0.80
nextMethod · 0.45
toStringMethod · 0.45

Tested by

no test coverage detected