WIP
This commit is contained in:
@ -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,
|
||||
|
@ -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()
|
||||
}
|
||||
|
Reference in New Issue
Block a user