Simplified join with a global code

This commit is contained in:
Manuel Forcén Muñoz 2025-02-12 20:12:30 +01:00
parent bc6b57bc54
commit efd337b6ce
4 changed files with 93 additions and 77 deletions

View file

@ -1,6 +1,8 @@
package core
import (
"errors"
"gorm.io/gorm"
)
@ -14,6 +16,31 @@ func (u *User) GetPlans(orm *gorm.DB) ([]Plan, error) {
return plans, err.Error
}
func (u *User) GetPlan(db *gorm.DB, plan_id uint) (Plan, error) {
var plan Plan = Plan{
ID: plan_id,
}
result := db.Take(&plan)
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
return plan, ErrNotFound
} else if result.Error != nil {
return plan, result.Error
}
if plan.Owner == u.Username {
return plan, nil
}
isMember, err := plan.IsMember(db, u)
if !isMember || err != nil {
return plan, err
}
return plan, nil
}
func GetUser(orm *gorm.DB, username string) (User, error) {
user := User{Username: username}
if err := orm.Take(&user).Error; err != nil {