Members now can be non-users

This commit is contained in:
Manuel Forcén Muñoz 2025-01-14 20:14:07 +01:00
parent bce6857b12
commit acfe6b7d0c
5 changed files with 40 additions and 28 deletions

View file

@ -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
}