From 5f7d844750f1f6e09f8ab934fc49e9389ce462ee Mon Sep 17 00:00:00 2001
From: Pierre Lespagnol <pierre.lespagnol@savoirfairelinux.com>
Date: Tue, 15 Dec 2020 12:22:57 -0500
Subject: [PATCH] newaccountmodel: add default moderator functions

Change-Id: Iaa2074320b8a5c25107bc713597e75a4ca4d4445
---
 src/api/newaccountmodel.h                 | 13 +++++++++++++
 src/newaccountmodel.cpp                   | 12 ++++++++++++
 src/qtwrapper/configurationmanager_wrap.h | 10 ++++++++++
 3 files changed, 35 insertions(+)

diff --git a/src/api/newaccountmodel.h b/src/api/newaccountmodel.h
index 0e0f654c..950c27ab 100644
--- a/src/api/newaccountmodel.h
+++ b/src/api/newaccountmodel.h
@@ -200,6 +200,19 @@ public:
      * @return best id of the account
      */
     const QString bestIdForAccount(const QString& accountID);
+    /**
+     * Add/remove default moderator
+     * @param accountID
+     * @param peerURI
+     * @param state
+     */
+    void setDefaultModerator(const QString& accountID, const QString& peerURI, const bool& state);
+    /**
+     * Get default moderators for an account
+     * @param accountID
+     * @return default moderators for the account
+     */
+    QStringList getDefaultModerators(const QString& accountID);
 
 Q_SIGNALS:
     /**
diff --git a/src/newaccountmodel.cpp b/src/newaccountmodel.cpp
index 80dd4262..ea73287a 100644
--- a/src/newaccountmodel.cpp
+++ b/src/newaccountmodel.cpp
@@ -1148,6 +1148,18 @@ NewAccountModel::bestIdForAccount(const QString& accountID)
     return QString();
 }
 
+void
+NewAccountModel::setDefaultModerator(const QString& accountID, const QString& peerURI, const bool& state)
+{
+    ConfigurationManager::instance().setDefaultModerator(accountID, peerURI, state);
+}
+
+QStringList
+NewAccountModel::getDefaultModerators(const QString& accountID)
+{
+    return ConfigurationManager::instance().getDefaultModerators(accountID);
+}
+
 } // namespace lrc
 
 #include "api/moc_newaccountmodel.cpp"
diff --git a/src/qtwrapper/configurationmanager_wrap.h b/src/qtwrapper/configurationmanager_wrap.h
index ba888ab2..554ce0e5 100644
--- a/src/qtwrapper/configurationmanager_wrap.h
+++ b/src/qtwrapper/configurationmanager_wrap.h
@@ -823,6 +823,16 @@ public Q_SLOTS: // METHODS
         return DRing::searchUser(accountId.toStdString(), query.toStdString());
     }
 
+    void setDefaultModerator(const QString& accountID, const QString& peerURI, const bool& state)
+    {
+        DRing::setDefaultModerator(accountID.toStdString(), peerURI.toStdString(), state);
+    }
+
+    QStringList getDefaultModerators(const QString& accountID)
+    {
+        return convertStringList(DRing::getDefaultModerators(accountID.toStdString()));
+    }
+
 Q_SIGNALS: // SIGNALS
     void volumeChanged(const QString& device, double value);
     void accountsChanged();
-- 
GitLab