This commit is contained in:
2023-09-04 17:24:33 -05:00
parent 48e426dd67
commit 84a017281f
8 changed files with 113 additions and 352 deletions

View File

@ -43,7 +43,7 @@ func (pq *PuppetQuery) New() *Puppet {
const (
puppetColumns = "gmid, displayname, name_set, avatar, avatar_url, avatar_set, custom_mxid, access_token, next_batch, enable_receipts"
getAllPuppetsQuery = "SELECT " + puppetColumns + " FROM puppets"
getAllPuppetsQuery = "SELECT " + puppetColumns + " FROM puppet"
getPuppetQuery = getAllPuppetsQuery + " WHERE gmid=$1"
getPuppetByCustomMXIDQuery = getAllPuppetsQuery + " WHERE custom_mxid=$1"
getAllPuppetsWithCustomMXIDQuery = getAllPuppetsQuery + " WHERE custom_mxid<>''"
@ -135,7 +135,7 @@ func (puppet *Puppet) Scan(row dbutil.Scannable) *Puppet {
func (puppet *Puppet) Insert() {
_, err := puppet.db.Exec(`
INSERT INTO puppet (username, avatar, avatar_url, avatar_set, displayname, name_set,
INSERT INTO puppet (gmid, avatar, avatar_url, avatar_set, displayname, name_set,
custom_mxid, access_token, next_batch, enable_receipts)
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
`, puppet.GMID, puppet.Avatar, puppet.AvatarURL.String(), puppet.AvatarSet, puppet.Displayname,

View File

@ -33,3 +33,37 @@ func (user *User) MarkInSpace(portal PortalKey) {
user.inSpaceCache[portal] = true
}
}
func (user *User) SetPortalKeys(newKeys []PortalKey) error {
tx, err := user.db.Begin()
if err != nil {
_ = tx.Rollback()
return nil
}
ans, err := tx.Query("DELETE FROM user_portal WHERE user_mxid = $1", user.MXID)
if err != nil {
_ = tx.Rollback()
return err
}
err = ans.Close()
if err != nil {
return err
}
for _, key := range newKeys {
ans, err = tx.Query("INSERT INTO user_portal (user_mxid, portal_gmid, portal_receiver, in_space) VALUES ($1, $2, $3, $4)",
user.MXID, key.GMID, key.Receiver, true)
if err != nil {
_ = tx.Rollback()
return err
}
err = ans.Close()
if err != nil {
return err
}
}
println("portalkey transaction complete")
return tx.Commit()
}