Members now can be non-users
This commit is contained in:
parent
bce6857b12
commit
acfe6b7d0c
5 changed files with 40 additions and 28 deletions
|
|
@ -31,22 +31,20 @@ func GetPlan(orm *gorm.DB, user User, id uint) (*Plan, error) {
|
|||
return &plan, nil
|
||||
}
|
||||
|
||||
func (p *Plan) GetAllUsers(orm *gorm.DB) ([]User, error) {
|
||||
var users []User
|
||||
err := orm.Model(p).Association("Members").Find(&users)
|
||||
return users, err
|
||||
func (p *Plan) GetAllUsers(orm *gorm.DB) ([]Member, error) {
|
||||
var members []Member
|
||||
err := orm.Model(p).Association("Members").Find(&members)
|
||||
return members, err
|
||||
}
|
||||
|
||||
func (p *Plan) IsMember(orm *gorm.DB, u *User) (bool, error) {
|
||||
var user User
|
||||
var member_count int64
|
||||
result := orm.
|
||||
Table("users u").
|
||||
Select("u.*").
|
||||
Joins("JOIN user_plans up on u.username=up.user_username AND up.plan_id = ?", p.ID).
|
||||
Where("u.username = ?", u.Username).
|
||||
Take(&user).Error
|
||||
if errors.Is(result, gorm.ErrRecordNotFound) {
|
||||
Table("members").
|
||||
Where("user_id=? AND plan_id=?", u.Username, p.ID).
|
||||
Count(&member_count).Error
|
||||
if result != nil {
|
||||
return false, ErrNotMember
|
||||
}
|
||||
return result == nil, result
|
||||
return member_count == 1, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue