35 lines
790 B
Go
35 lines
790 B
Go
package db
|
|
|
|
type GistInitQueue struct {
|
|
GistID uint `gorm:"primaryKey"`
|
|
Gist Gist `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;foreignKey:GistID"`
|
|
UserID uint `gorm:"primaryKey"`
|
|
User User `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;foreignKey:UserID"`
|
|
}
|
|
|
|
func GetInitGistInQueueForUser(userID uint) (*Gist, error) {
|
|
queue := new(GistInitQueue)
|
|
err := db.Preload("Gist").Preload("Gist.User").
|
|
Where("user_id = ?", userID).
|
|
Order("gist_id asc").
|
|
First(&queue).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
err = db.Delete(&queue).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &queue.Gist, nil
|
|
}
|
|
|
|
func AddInitGistToQueue(gistID uint, userID uint) error {
|
|
queue := &GistInitQueue{
|
|
GistID: gistID,
|
|
UserID: userID,
|
|
}
|
|
return db.Create(&queue).Error
|
|
}
|