From 7469b2577da39920ebd7eaaa2b5086c8f2b21805 Mon Sep 17 00:00:00 2001 From: Sumner Evans Date: Mon, 17 Apr 2023 21:56:05 -0600 Subject: [PATCH] db/puppet: add contact_info_set column Signed-off-by: Sumner Evans --- database/puppet.go | 29 ++++++++++++----------- database/upgrades/00-latest-revision.sql | 13 +++++----- database/upgrades/16-add-contact-info.sql | 3 +++ 3 files changed, 25 insertions(+), 20 deletions(-) create mode 100644 database/upgrades/16-add-contact-info.sql diff --git a/database/puppet.go b/database/puppet.go index 1200a53..6628887 100644 --- a/database/puppet.go +++ b/database/puppet.go @@ -11,7 +11,7 @@ import ( const ( puppetSelect = "SELECT id, name, name_set, avatar, avatar_url, avatar_set," + - " custom_mxid, access_token, next_batch" + + " contact_info_set, custom_mxid, access_token, next_batch" + " FROM puppet " ) @@ -66,12 +66,13 @@ type Puppet struct { db *Database log log.Logger - ID string - Name string - NameSet bool - Avatar string - AvatarURL id.ContentURI - AvatarSet bool + ID string + Name string + NameSet bool + Avatar string + AvatarURL id.ContentURI + AvatarSet bool + ContactInfoSet bool CustomMXID id.UserID AccessToken string @@ -82,7 +83,7 @@ func (p *Puppet) Scan(row dbutil.Scannable) *Puppet { var avatarURL string var customMXID, accessToken, nextBatch sql.NullString - err := row.Scan(&p.ID, &p.Name, &p.NameSet, &p.Avatar, &avatarURL, &p.AvatarSet, + err := row.Scan(&p.ID, &p.Name, &p.NameSet, &p.Avatar, &avatarURL, &p.AvatarSet, &p.ContactInfoSet, &customMXID, &accessToken, &nextBatch) if err != nil { @@ -104,10 +105,10 @@ func (p *Puppet) Scan(row dbutil.Scannable) *Puppet { func (p *Puppet) Insert() { query := ` - INSERT INTO puppet (id, name, name_set, avatar, avatar_url, avatar_set, custom_mxid, access_token, next_batch) - VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + INSERT INTO puppet (id, name, name_set, avatar, avatar_url, avatar_set, contact_info_set, custom_mxid, access_token, next_batch) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) ` - _, err := p.db.Exec(query, p.ID, p.Name, p.NameSet, p.Avatar, p.AvatarURL.String(), p.AvatarSet, + _, err := p.db.Exec(query, p.ID, p.Name, p.NameSet, p.Avatar, p.AvatarURL.String(), p.AvatarSet, p.ContactInfoSet, strPtr(string(p.CustomMXID)), strPtr(p.AccessToken), strPtr(p.NextBatch)) if err != nil { @@ -119,11 +120,11 @@ func (p *Puppet) Insert() { func (p *Puppet) Update() { query := ` UPDATE puppet SET name=$1, name_set=$2, avatar=$3, avatar_url=$4, avatar_set=$5, - custom_mxid=$6, access_token=$7, next_batch=$8 - WHERE id=$9 + contact_info_set=$6, custom_mxid=$7, access_token=$8, next_batch=$9 + WHERE id=$10 ` _, err := p.db.Exec(query, p.Name, p.NameSet, p.Avatar, p.AvatarURL.String(), p.AvatarSet, - strPtr(string(p.CustomMXID)), strPtr(p.AccessToken), strPtr(p.NextBatch), + p.ContactInfoSet, strPtr(string(p.CustomMXID)), strPtr(p.AccessToken), strPtr(p.NextBatch), p.ID) if err != nil { diff --git a/database/upgrades/00-latest-revision.sql b/database/upgrades/00-latest-revision.sql index dbfe269..df9837e 100644 --- a/database/upgrades/00-latest-revision.sql +++ b/database/upgrades/00-latest-revision.sql @@ -1,4 +1,4 @@ --- v0 -> v15: Latest revision +-- v0 -> v16: Latest revision CREATE TABLE guild ( dcid TEXT PRIMARY KEY, @@ -62,11 +62,12 @@ CREATE TABLE thread ( CREATE TABLE puppet ( id TEXT PRIMARY KEY, - name TEXT NOT NULL, - name_set BOOLEAN NOT NULL, - avatar TEXT NOT NULL, - avatar_url TEXT NOT NULL, - avatar_set BOOLEAN NOT NULL, + name TEXT NOT NULL, + name_set BOOLEAN NOT NULL DEFAULT false, + avatar TEXT NOT NULL, + avatar_url TEXT NOT NULL, + avatar_set BOOLEAN NOT NULL DEFAULT false, + contact_info_set BOOLEAN NOT NULL DEFAULT false, custom_mxid TEXT, access_token TEXT, diff --git a/database/upgrades/16-add-contact-info.sql b/database/upgrades/16-add-contact-info.sql new file mode 100644 index 0000000..8595ae3 --- /dev/null +++ b/database/upgrades/16-add-contact-info.sql @@ -0,0 +1,3 @@ +-- v16: Store whether custom contact info has been set for the puppet + +ALTER TABLE puppet ADD COLUMN contact_info_set BOOLEAN NOT NULL DEFAULT false;