Changeset 664 in code for trunk/db_sqlite.go


Ignore:
Timestamp:
Nov 2, 2021, 10:33:17 PM (4 years ago)
Author:
contact
Message:

Make Network.Nick optional

Make Network.Nick optional, default to the user's username. This
will allow adding a global setting to set the nickname in the
future, just like we have for the real name.

References: https://todo.sr.ht/~emersion/soju/110

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/db_sqlite.go

    r663 r664  
    2929        user INTEGER NOT NULL,
    3030        addr TEXT NOT NULL,
    31         nick TEXT NOT NULL,
     31        nick TEXT,
    3232        username TEXT,
    3333        realname TEXT,
     
    139139        "ALTER TABLE Network ADD COLUMN enabled INTEGER NOT NULL DEFAULT 1",
    140140        "ALTER TABLE User ADD COLUMN realname VARCHAR(255)",
     141        `
     142                CREATE TABLE NetworkNew (
     143                        id INTEGER PRIMARY KEY,
     144                        name TEXT,
     145                        user INTEGER NOT NULL,
     146                        addr TEXT NOT NULL,
     147                        nick TEXT,
     148                        username TEXT,
     149                        realname TEXT,
     150                        pass TEXT,
     151                        connect_commands TEXT,
     152                        sasl_mechanism TEXT,
     153                        sasl_plain_username TEXT,
     154                        sasl_plain_password TEXT,
     155                        sasl_external_cert BLOB,
     156                        sasl_external_key BLOB,
     157                        enabled INTEGER NOT NULL DEFAULT 1,
     158                        FOREIGN KEY(user) REFERENCES User(id),
     159                        UNIQUE(user, addr, nick),
     160                        UNIQUE(user, name)
     161                );
     162                INSERT INTO NetworkNew
     163                        SELECT id, name, user, addr, nick, username, realname, pass,
     164                                connect_commands, sasl_mechanism, sasl_plain_username,
     165                                sasl_plain_password, sasl_external_cert, sasl_external_key,
     166                                enabled
     167                        FROM Network;
     168                DROP TABLE Network;
     169                ALTER TABLE NetworkNew RENAME TO Network;
     170        `,
    141171}
    142172
     
    394424        for rows.Next() {
    395425                var net Network
    396                 var name, username, realname, pass, connectCommands sql.NullString
     426                var name, nick, username, realname, pass, connectCommands sql.NullString
    397427                var saslMechanism, saslPlainUsername, saslPlainPassword sql.NullString
    398                 err := rows.Scan(&net.ID, &name, &net.Addr, &net.Nick, &username, &realname,
     428                err := rows.Scan(&net.ID, &name, &net.Addr, &nick, &username, &realname,
    399429                        &pass, &connectCommands, &saslMechanism, &saslPlainUsername, &saslPlainPassword,
    400430                        &net.SASL.External.CertBlob, &net.SASL.External.PrivKeyBlob, &net.Enabled)
     
    403433                }
    404434                net.Name = name.String
     435                net.Nick = nick.String
    405436                net.Username = username.String
    406437                net.Realname = realname.String
     
    447478                sql.Named("name", toNullString(network.Name)),
    448479                sql.Named("addr", network.Addr),
    449                 sql.Named("nick", network.Nick),
     480                sql.Named("nick", toNullString(network.Nick)),
    450481                sql.Named("username", toNullString(network.Username)),
    451482                sql.Named("realname", toNullString(network.Realname)),
Note: See TracChangeset for help on using the changeset viewer.