uname bug
a uname thing o test commit1
This commit is contained in:
@ -57,7 +57,7 @@ func New(dbType string, uri string, baseLog log.Logger) (*Database, error) {
|
||||
}
|
||||
|
||||
gdb, err := gorm.Open(conn, &gorm.Config{
|
||||
// Logger: logger.Default.LogMode(logger.Info),
|
||||
//Logger: logger.Default.LogMode(logger.Info),
|
||||
// Logger: baseLog,
|
||||
|
||||
DisableForeignKeyConstraintWhenMigrating: true,
|
||||
@ -113,7 +113,7 @@ func (db *Database) Init() error {
|
||||
return err
|
||||
}
|
||||
|
||||
err = db.AutoMigrate(&mxRegistered{}, &mxUserProfile{})
|
||||
err = db.AutoMigrate(&mxRegistered{}, &MxUserProfile{})
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -45,8 +45,7 @@ func (pq *PuppetQuery) GetAll() (puppets []*Puppet) {
|
||||
return nil
|
||||
}
|
||||
for _, puppet := range puppets {
|
||||
puppet.db = pq.db
|
||||
puppet.log = pq.log
|
||||
pq.initializePuppet(puppet)
|
||||
}
|
||||
// defer rows.Close()
|
||||
// for rows.Next() {
|
||||
@ -61,8 +60,7 @@ 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
|
||||
pq.initializePuppet(&puppet)
|
||||
return &puppet
|
||||
}
|
||||
|
||||
@ -72,8 +70,7 @@ 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
|
||||
pq.initializePuppet(&puppet)
|
||||
return &puppet
|
||||
}
|
||||
|
||||
@ -84,8 +81,7 @@ func (pq *PuppetQuery) GetAllWithCustomMXID() (puppets []*Puppet) {
|
||||
return nil
|
||||
}
|
||||
for _, puppet := range puppets {
|
||||
puppet.db = pq.db
|
||||
puppet.log = pq.log
|
||||
pq.initializePuppet(puppet)
|
||||
}
|
||||
// defer rows.Close()
|
||||
// for rows.Next() {
|
||||
@ -94,16 +90,21 @@ func (pq *PuppetQuery) GetAllWithCustomMXID() (puppets []*Puppet) {
|
||||
return
|
||||
}
|
||||
|
||||
func (pq *PuppetQuery) initializePuppet(p *Puppet) {
|
||||
p.db = pq.db
|
||||
p.log = pq.log
|
||||
}
|
||||
|
||||
//Puppet is comment
|
||||
type Puppet struct {
|
||||
db *Database
|
||||
log log.Logger
|
||||
|
||||
JID types.GroupMeID `gorm:"primaryKey"`
|
||||
Avatar string
|
||||
AvatarURL types.ContentURI
|
||||
Displayname string
|
||||
NameQuality int8
|
||||
JID types.GroupMeID `gorm:"primaryKey"`
|
||||
//Avatar string
|
||||
//AvatarURL types.ContentURI
|
||||
//Displayname string
|
||||
//NameQuality int8
|
||||
|
||||
CustomMXID id.UserID `gorm:"column:custom_mxid;"`
|
||||
AccessToken string
|
||||
|
@ -76,18 +76,19 @@ func (store *SQLStateStore) MarkRegistered(userID id.UserID) {
|
||||
}
|
||||
}
|
||||
|
||||
type mxUserProfile struct {
|
||||
type MxUserProfile struct {
|
||||
RoomID string `gorm:"primaryKey"`
|
||||
UserID string `gorm:"primaryKey"`
|
||||
Membership string `gorm:"notNull"`
|
||||
|
||||
DisplayName string
|
||||
AvatarURL string
|
||||
Avatar string
|
||||
}
|
||||
|
||||
func (store *SQLStateStore) GetRoomMembers(roomID id.RoomID) map[id.UserID]*event.MemberEventContent {
|
||||
members := make(map[id.UserID]*event.MemberEventContent)
|
||||
var users []mxUserProfile
|
||||
var users []MxUserProfile
|
||||
ans := store.db.Where("room_id = ?", roomID.String()).Find(&users)
|
||||
if ans.Error != nil {
|
||||
return members
|
||||
@ -113,7 +114,7 @@ func (store *SQLStateStore) GetRoomMembers(roomID id.RoomID) map[id.UserID]*even
|
||||
}
|
||||
|
||||
func (store *SQLStateStore) GetMembership(roomID id.RoomID, userID id.UserID) event.Membership {
|
||||
var user mxUserProfile
|
||||
var user MxUserProfile
|
||||
ans := store.db.Where("room_id = ? AND user_id = ?", roomID, userID).Limit(1).Find(&user)
|
||||
membership := event.MembershipLeave
|
||||
if ans.Error != nil && ans.Error != gorm.ErrRecordNotFound {
|
||||
@ -133,7 +134,7 @@ func (store *SQLStateStore) GetMember(roomID id.RoomID, userID id.UserID) *event
|
||||
}
|
||||
|
||||
func (store *SQLStateStore) TryGetMember(roomID id.RoomID, userID id.UserID) (*event.MemberEventContent, bool) {
|
||||
var user mxUserProfile
|
||||
var user MxUserProfile
|
||||
ans := store.db.Where("room_id = ? AND user_id = ?", roomID, userID).Take(&user)
|
||||
|
||||
if ans.Error != nil && ans.Error != gorm.ErrRecordNotFound {
|
||||
@ -148,6 +149,32 @@ func (store *SQLStateStore) TryGetMember(roomID id.RoomID, userID id.UserID) (*e
|
||||
return &eventMember, ans.Error != nil
|
||||
}
|
||||
|
||||
func (store *SQLStateStore) TryGetMemberRaw(roomID id.RoomID, userID id.UserID) (user MxUserProfile, err bool) {
|
||||
ans := store.db.Where("room_id = ? AND user_id = ?", roomID, userID).Take(&user)
|
||||
|
||||
if ans.Error == gorm.ErrRecordNotFound {
|
||||
err = true
|
||||
return
|
||||
}
|
||||
if ans.Error != nil && ans.Error != gorm.ErrRecordNotFound {
|
||||
store.log.Warnfln("Failed to scan member info of %s in %s: %v", userID, roomID, ans.Error)
|
||||
err = true
|
||||
return
|
||||
}
|
||||
|
||||
return user, false
|
||||
}
|
||||
|
||||
func (store *SQLStateStore) SetMemberRaw(member *MxUserProfile) {
|
||||
ans := store.db.Clauses(clause.OnConflict{
|
||||
UpdateAll: true,
|
||||
}).Create(member)
|
||||
|
||||
if ans.Error != nil {
|
||||
store.log.Warnfln("Failed to set membership of %s in %s to %s: %v", member.UserID, member.RoomID, member, ans.Error)
|
||||
}
|
||||
}
|
||||
|
||||
func (store *SQLStateStore) FindSharedRooms(userID id.UserID) (rooms []id.RoomID) {
|
||||
|
||||
rows, err := store.db.Table("mx_user_profile").Select("room_id").
|
||||
@ -192,7 +219,7 @@ func (store *SQLStateStore) IsMembership(roomID id.RoomID, userID id.UserID, all
|
||||
|
||||
func (store *SQLStateStore) SetMembership(roomID id.RoomID, userID id.UserID, membership event.Membership) {
|
||||
var err error
|
||||
user := mxUserProfile{
|
||||
user := MxUserProfile{
|
||||
RoomID: roomID.String(),
|
||||
UserID: userID.String(),
|
||||
Membership: string(membership),
|
||||
@ -208,19 +235,18 @@ func (store *SQLStateStore) SetMembership(roomID id.RoomID, userID id.UserID, me
|
||||
store.log.Warnfln("Failed to set membership of %s in %s to %s: %v", userID, roomID, membership, err)
|
||||
}
|
||||
}
|
||||
|
||||
func (store *SQLStateStore) SetMember(roomID id.RoomID, userID id.UserID, member *event.MemberEventContent) {
|
||||
|
||||
user := mxUserProfile{
|
||||
user := MxUserProfile{
|
||||
RoomID: roomID.String(),
|
||||
UserID: userID.String(),
|
||||
Membership: string(member.Membership),
|
||||
DisplayName: member.Displayname,
|
||||
AvatarURL: string(member.AvatarURL),
|
||||
// AvatarURL: string(member.AvatarURL),//try ignoring
|
||||
}
|
||||
ans := store.db.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "room_id"}, {Name: "user_id"}},
|
||||
DoUpdates: clause.AssignmentColumns([]string{"membership"}),
|
||||
DoUpdates: clause.AssignmentColumns([]string{"membership", "display_name"}),
|
||||
}).Create(&user)
|
||||
|
||||
if ans.Error != nil {
|
||||
|
Reference in New Issue
Block a user