tableInvitations.go (1432B)
1 package database 2 3 import ( 4 "dkforest/pkg/utils" 5 "github.com/sirupsen/logrus" 6 "time" 7 ) 8 9 type Invitation struct { 10 ID int64 11 Token string 12 OwnerUserID UserID 13 InviteeUserID UserID 14 CreatedAt time.Time 15 UpdatedAt time.Time 16 } 17 18 // Save user in the database 19 func (i *Invitation) Save(db *DkfDB) error { 20 return db.db.Save(i).Error 21 } 22 23 // DoSave user in the database, ignore error 24 func (i *Invitation) DoSave(db *DkfDB) { 25 if err := db.db.Save(i).Error; err != nil { 26 logrus.Error(err) 27 } 28 } 29 30 func (d *DkfDB) CreateInvitation(userID UserID) (out Invitation, err error) { 31 out = Invitation{ 32 Token: utils.GenerateToken32(), 33 OwnerUserID: userID, 34 InviteeUserID: 1, 35 } 36 err = d.db.Create(&out).Error 37 return 38 } 39 40 func (d *DkfDB) DeleteAllUserUnusedInvitations(userID UserID) (err error) { 41 err = d.db.Delete(&Invitation{}, "owner_user_id = ? AND invitee_user_id == 1", userID).Error 42 return 43 } 44 45 func (d *DkfDB) GetUnusedInvitationByToken(token string) (out Invitation, err error) { 46 err = d.db.First(&out, "token = ? AND invitee_user_id == 1", token).Error 47 return 48 } 49 50 func (d *DkfDB) GetUserInvitations(userID UserID) (out []Invitation, err error) { 51 err = d.db.Find(&out, "owner_user_id = ?", userID).Error 52 return 53 } 54 55 func (d *DkfDB) GetUserUnusedInvitations(userID UserID) (out []Invitation, err error) { 56 err = d.db.Find(&out, "owner_user_id = ? AND invitee_user_id == 1", userID).Error 57 return 58 }