dashboard-v2/database/table/memberids.go
2020-03-17 21:17:32 +00:00

39 lines
829 B
Go

package table
import (
"github.com/TicketsBot/GoPanel/database"
"github.com/apex/log"
)
// Use an intermediary table to prevent a many-to-many relationship
type MemberId struct {
MemberId int `gorm:"column:MEMBERID;primary_key;auto_increment"`
GuildId int64 `gorm:"column:GUILDID"`
UserId int64 `gorm:"column:USERID"`
}
func (MemberId) TableName() string {
return "cache_memberids"
}
func GetMemberId(guildId, userId int64, ch chan *int) {
var row MemberId
database.Database.Where(&MemberId{GuildId: guildId, UserId: userId}).Take(&row)
if row.MemberId == 0 {
row = MemberId{
GuildId: guildId,
UserId: userId,
}
if db := database.Database.Create(row).Scan(&row); db.Error != nil {
log.Error(db.Error.Error())
ch <- nil
return
}
ch <- &row.MemberId
} else {
ch <- &row.MemberId
}
}