Added getNetworkId(UserId user, const QString &network) to make the transition to...
authorMarcus Eggenberger <egs@quassel-irc.org>
Sat, 22 Sep 2007 18:31:26 +0000 (18:31 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Sat, 22 Sep 2007 18:31:26 +0000 (18:31 +0000)
src/core/sqlitestorage.cpp
src/core/sqlitestorage.h
src/core/storage.h

index 86bf988..957528a 100644 (file)
@@ -187,11 +187,10 @@ bool SqliteStorage::isAvailable() {
 }
 
 QString SqliteStorage::displayName() {
 }
 
 QString SqliteStorage::displayName() {
-  // I think the class name is a good start here
   return QString("SqliteStorage");
 }
 
   return QString("SqliteStorage");
 }
 
-UserId SqliteStorage::addUser(QString user, QString password) {
+UserId SqliteStorage::addUser(const QString &user, const QString &password) {
   QByteArray cryptopass = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Sha1);
   cryptopass = cryptopass.toHex();
 
   QByteArray cryptopass = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Sha1);
   cryptopass = cryptopass.toHex();
 
@@ -213,7 +212,7 @@ UserId SqliteStorage::addUser(QString user, QString password) {
   return uid;
 }
 
   return uid;
 }
 
-void SqliteStorage::updateUser(UserId user, QString password) {
+void SqliteStorage::updateUser(UserId user, const QString &password) {
   QByteArray cryptopass = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Sha1);
   cryptopass = cryptopass.toHex();
 
   QByteArray cryptopass = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Sha1);
   cryptopass = cryptopass.toHex();
 
@@ -224,7 +223,7 @@ void SqliteStorage::updateUser(UserId user, QString password) {
   query.exec();
 }
 
   query.exec();
 }
 
-void SqliteStorage::renameUser(UserId user, QString newName) {
+void SqliteStorage::renameUser(UserId user, const QString &newName) {
   QSqlQuery query(logDb);
   query.prepare("UPDATE quasseluser SET username = :username WHERE userid = :userid");
   query.bindValue(":userid", user);
   QSqlQuery query(logDb);
   query.prepare("UPDATE quasseluser SET username = :username WHERE userid = :userid");
   query.bindValue(":userid", user);
@@ -233,7 +232,7 @@ void SqliteStorage::renameUser(UserId user, QString newName) {
   emit userRenamed(user, newName);
 }
 
   emit userRenamed(user, newName);
 }
 
-UserId SqliteStorage::validateUser(QString user, QString password) {
+UserId SqliteStorage::validateUser(const QString &user, const QString &password) {
   QByteArray cryptopass = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Sha1);
   cryptopass = cryptopass.toHex();
 
   QByteArray cryptopass = QCryptographicHash::hash(password.toUtf8(), QCryptographicHash::Sha1);
   cryptopass = cryptopass.toHex();
 
@@ -272,7 +271,7 @@ void SqliteStorage::delUser(UserId user) {
   emit userRemoved(user);
 }
 
   emit userRemoved(user);
 }
 
-void SqliteStorage::createBuffer(UserId user, QString network, QString buffer) {
+void SqliteStorage::createBuffer(UserId user, const QString &network, const QString &buffer) {
   createBufferQuery->bindValue(":userid", user);
   createBufferQuery->bindValue(":networkname", network);
   createBufferQuery->bindValue(":buffername", buffer);
   createBufferQuery->bindValue(":userid", user);
   createBufferQuery->bindValue(":networkname", network);
   createBufferQuery->bindValue(":buffername", buffer);
@@ -294,7 +293,21 @@ void SqliteStorage::createBuffer(UserId user, QString network, QString buffer) {
   }
 }
 
   }
 }
 
-BufferId SqliteStorage::getBufferId(UserId user, QString network, QString buffer) {
+uint SqliteStorage::getNetworkId(UserId user, const QString &network) {
+  QSqlQuery query(logDb);
+  query.prepare("SELECT networkid FROM network "
+               "WHERE userid = :userid AND networkname = :networkname");
+  query.bindValue(":userid", user);
+  query.bindValue(":networkname", network);
+  query.exec();
+  
+  if(query.first())
+    return query.value(0).toUInt();
+  else
+    return 0;
+}
+
+BufferId SqliteStorage::getBufferId(UserId user, const QString &network, const QString &buffer) {
   BufferId bufferid;
   getBufferIdQuery->bindValue(":networkname", network);
   getBufferIdQuery->bindValue(":userid", user);
   BufferId bufferid;
   getBufferIdQuery->bindValue(":networkname", network);
   getBufferIdQuery->bindValue(":userid", user);
index 2d72b59..a4f5fec 100644 (file)
@@ -46,15 +46,17 @@ class SqliteStorage : public Storage {
 
     /* User handling */
 
 
     /* User handling */
 
-    virtual UserId addUser(QString user, QString password);
-    virtual void updateUser(UserId user, QString password);
-    virtual void renameUser(UserId user, QString newName);
-    virtual UserId validateUser(QString user, QString password);
+    virtual UserId addUser(const QString &user, const QString &password);
+    virtual void updateUser(UserId user, const QString &password);
+    virtual void renameUser(UserId user, const QString &newName);
+    virtual UserId validateUser(const QString &user, const QString &password);
     virtual void delUser(UserId user);
 
     virtual void delUser(UserId user);
 
-    /* Buffer handling */
+    /* Network handling */
+    virtual uint getNetworkId(UserId user, const QString &network);
 
 
-    virtual BufferId getBufferId(UserId user, QString network, QString buffer = "");
+    /* Buffer handling */
+    virtual BufferId getBufferId(UserId user, const QString &network, const QString &buffer = "");
     virtual QList<BufferId> requestBuffers(UserId user, QDateTime since = QDateTime());
 
     /* Message handling */
     virtual QList<BufferId> requestBuffers(UserId user, QDateTime since = QDateTime());
 
     /* Message handling */
@@ -79,7 +81,7 @@ class SqliteStorage : public Storage {
 
   private:
     void initDb();
 
   private:
     void initDb();
-    void createBuffer(UserId user, QString network, QString buffer);
+    void createBuffer(UserId user, const QString &network, const QString &buffer);
     QSqlQuery *logMessageQuery;
     QSqlQuery *addSenderQuery;
     QSqlQuery *getLastMessageIdQuery;
     QSqlQuery *logMessageQuery;
     QSqlQuery *addSenderQuery;
     QSqlQuery *getLastMessageIdQuery;
index e66563b..3782ff1 100644 (file)
@@ -66,32 +66,41 @@ class Storage : public QObject {
      *  \param password The cleartext password for the new user
      *  \return The new user's UserId
      */
      *  \param password The cleartext password for the new user
      *  \return The new user's UserId
      */
-    virtual UserId addUser(QString user, QString password) = 0;
+    virtual UserId addUser(const QString &user, const QString &password) = 0;
 
     //! Update a core user's password.
     /** \param user     The user's id
      *  \param password The user's new password
      */
 
     //! Update a core user's password.
     /** \param user     The user's id
      *  \param password The user's new password
      */
-    virtual void updateUser(UserId user, QString password) = 0;
+    virtual void updateUser(UserId user, const QString &password) = 0;
 
     //! Rename a user
     /** \param user     The user's id
      *  \param newName  The user's new name
      */
 
     //! Rename a user
     /** \param user     The user's id
      *  \param newName  The user's new name
      */
-    virtual void renameUser(UserId user, QString newName) = 0;
+    virtual void renameUser(UserId user, const QString &newName) = 0;
 
     //! Validate a username with a given password.
     /** \param user     The username to validate
      *  \param password The user's alleged password
      *  \return A valid UserId if the password matches the username; 0 else
      */
 
     //! Validate a username with a given password.
     /** \param user     The username to validate
      *  \param password The user's alleged password
      *  \return A valid UserId if the password matches the username; 0 else
      */
-    virtual UserId validateUser(QString user, QString password) = 0;
+    virtual UserId validateUser(const QString &user, const QString &password) = 0;
 
     //! Remove a core user from storage.
     /** \param user     The userid to delete
      */
     virtual void delUser(UserId user) = 0;
 
 
     //! Remove a core user from storage.
     /** \param user     The userid to delete
      */
     virtual void delUser(UserId user) = 0;
 
+    /* Network handling */
+
+    //! Get the unique NetworkId of the network for a user.
+    /** \param user    The core user who owns this buffername
+     *  \param network The network name
+     *  \return The BufferId corresponding to the given network and buffer name, or 0 if not found
+     */
+    virtual uint getNetworkId(UserId user, const QString &network) = 0;
+
     /* Buffer handling */
 
     //! Get the unique BufferId for the given combination of network and buffername for a user.
     /* Buffer handling */
 
     //! Get the unique BufferId for the given combination of network and buffername for a user.
@@ -100,7 +109,7 @@ class Storage : public QObject {
      *  \param buffer  The buffer name (if empty, the net's status buffer is returned)
      *  \return The BufferId corresponding to the given network and buffer name, or 0 if not found
      */
      *  \param buffer  The buffer name (if empty, the net's status buffer is returned)
      *  \return The BufferId corresponding to the given network and buffer name, or 0 if not found
      */
-    virtual BufferId getBufferId(UserId user, QString network, QString buffer = "") = 0;
+    virtual BufferId getBufferId(UserId user, const QString &network, const QString &buffer = "") = 0;
 
     //! Request a list of all buffers known to a user since a certain point in time.
     /** This method is used to get a list of all buffers we have stored a backlog from.
 
     //! Request a list of all buffers known to a user since a certain point in time.
     /** This method is used to get a list of all buffers we have stored a backlog from.