This commit is contained in:
Karmanyaah Malhotra
2021-02-21 22:46:17 -05:00
parent 7cb9983da8
commit f1c093896e
9 changed files with 311 additions and 279 deletions

View File

@ -52,8 +52,9 @@ func New(dbType string, uri string, baseLog log.Logger) (*Database, error) {
} else {
conn = postgres.Open(uri)
}
print("no")
gdb, err := gorm.Open(conn, &gorm.Config{
// Logger: logger.Default.LogMode(logger.Info),
// Logger: baseLog,
NamingStrategy: schema.NamingStrategy{
NameReplacer: strings.NewReplacer("JID", "Jid", "MXID", "Mxid"),

View File

@ -17,9 +17,9 @@
package database
import (
"github.com/karmanyaahm/groupme"
log "maunium.net/go/maulogger/v2"
"maunium.net/go/mautrix-whatsapp/groupmeExt"
"maunium.net/go/mautrix-whatsapp/types"
"maunium.net/go/mautrix/id"
)
@ -76,12 +76,12 @@ type Message struct {
db *Database
log log.Logger
Chat PortalKey `gorm:"primaryKey;embedded;embeddedPrefix:chat_"`
JID types.GroupMeID `gorm:"primaryKey"`
MXID id.EventID `gorm:"unique;notNull"`
Sender types.GroupMeID `gorm:"notNull"`
Timestamp uint64 `gorm:"notNull;default:0"`
Content *groupme.Message `gorm:"type:TEXT;notNull"`
Chat PortalKey `gorm:"primaryKey;embedded;embeddedPrefix:chat_"`
JID types.GroupMeID `gorm:"primaryKey"`
MXID id.EventID `gorm:"unique;notNull"`
Sender types.GroupMeID `gorm:"notNull"`
Timestamp uint64 `gorm:"notNull;default:0"`
Content *groupmeExt.Message `gorm:"type:TEXT;notNull"`
// Portal Portal `gorm:"foreignKey:JID;"` //`gorm:"foreignKey:Chat.Receiver,Chat.JID;references:jid,receiver;constraint:onDelete:CASCADE;"`TODO
}
@ -124,13 +124,13 @@ type Message struct {
func (msg *Message) Insert() {
ans := msg.db.Create(&msg)
if ans.Error != nil {
// msg.log.Warnfln("Failed to insert %s@%s: %v", msg.Chat, msg.JID, ans.Error)
msg.log.Warnfln("Failed to insert %s@%s: %v", msg.Chat, msg.JID, ans.Error)
}
}
func (msg *Message) Delete() {
ans := msg.db.Delete(&msg)
if ans.Error != nil {
// msg.log.Warnfln("Failed to delete %s@%s: %v", msg.Chat, msg.JID, ans.Error)
msg.log.Warnfln("Failed to delete %s@%s: %v", msg.Chat, msg.JID, ans.Error)
}
}

View File

@ -44,6 +44,10 @@ func (pq *PuppetQuery) GetAll() (puppets []*Puppet) {
if ans.Error != nil || len(puppets) == 0 {
return nil
}
for _, puppet := range puppets {
puppet.db = pq.db
puppet.log = pq.log
}
// defer rows.Close()
// for rows.Next() {
// puppets = append(puppets, pq.New().Scan(rows))
@ -57,6 +61,8 @@ func (pq *PuppetQuery) Get(jid types.GroupMeID) *Puppet {
if ans.Error != nil || ans.RowsAffected == 0 {
return nil
}
puppet.db = pq.db
puppet.log = pq.log
return &puppet
}
@ -66,6 +72,8 @@ func (pq *PuppetQuery) GetByCustomMXID(mxid id.UserID) *Puppet {
if ans.Error != nil || ans.RowsAffected == 0 {
return nil
}
puppet.db = pq.db
puppet.log = pq.log
return &puppet
}
@ -75,6 +83,10 @@ func (pq *PuppetQuery) GetAllWithCustomMXID() (puppets []*Puppet) {
if ans.Error != nil || len(puppets) != 0 {
return nil
}
for _, puppet := range puppets {
puppet.db = pq.db
puppet.log = pq.log
}
// defer rows.Close()
// for rows.Next() {
// puppets = append(puppets, pq.New().Scan(rows))

View File

@ -153,6 +153,8 @@ func (store *SQLStateStore) FindSharedRooms(userID id.UserID) (rooms []id.RoomID
rows, err := store.db.Table("mx_user_profile").Select("room_id").
Joins("LEFT JOIN portal ON portal.mxid=mx_user_profile.room_id").
Where("user_id = ? AND portal.encrypted=true", userID).Rows()
defer rows.Close()
if err != nil {
store.log.Warnfln("Failed to query shared rooms with %s: %v", userID, err)
return
@ -198,7 +200,7 @@ func (store *SQLStateStore) SetMembership(roomID id.RoomID, userID id.UserID, me
print("weird thing 2 502650285")
print(user.Membership)
ans := store.db.Debug().Clauses(clause.OnConflict{
ans := store.db.Clauses(clause.OnConflict{
Columns: []clause.Column{{Name: "room_id"}, {Name: "user_id"}},
DoUpdates: clause.AssignmentColumns([]string{"membership"}),
}).Create(&user)

View File

@ -154,8 +154,9 @@ func (user *User) UpdateLastConnection() {
func (user *User) Update() {
ans := user.db.Save(&user)
if ans.Error != nil {
user.log.Warnfln("Failed to update last connection ts: %v", ans.Error)
user.log.Warnfln("Failed to update user: %v", ans.Error)
}
}
type PortalKeyWithMeta struct {
@ -197,6 +198,7 @@ func (user *User) SetPortalKeys(newKeys []PortalKeyWithMeta) error {
}
}
println("portalkey transaction complete")
return tx.Commit().Error
}