Assign default circle to user when leaving a circle
This commit is contained in:
parent
95a9e4af5b
commit
850d472445
2 changed files with 19 additions and 0 deletions
|
@ -191,6 +191,7 @@ func handleUserLeavingCircle(h *Handler, c *gin.Context, leavingUser *uModel.Use
|
||||||
|
|
||||||
h.choreRepo.UpdateChores(c, userAssignedCircleChores)
|
h.choreRepo.UpdateChores(c, userAssignedCircleChores)
|
||||||
h.choreRepo.RemoveChoreAssigneeByCircleID(c, leavingUser.ID, leavingUser.CircleID)
|
h.choreRepo.RemoveChoreAssigneeByCircleID(c, leavingUser.ID, leavingUser.CircleID)
|
||||||
|
h.circleRepo.AssignDefaultCircle(c, leavingUser.ID)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
cModel "donetick.com/core/internal/circle/model"
|
cModel "donetick.com/core/internal/circle/model"
|
||||||
|
uModel "donetick.com/core/internal/user/model"
|
||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -115,3 +116,20 @@ func (r *CircleRepository) GetCircleAdmins(c context.Context, circleID int) ([]*
|
||||||
}
|
}
|
||||||
return circleAdmins, nil
|
return circleAdmins, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *CircleRepository) GetDefaultCircle(c context.Context, userID int) (*cModel.Circle, error) {
|
||||||
|
var circle cModel.Circle
|
||||||
|
if err := r.db.WithContext(c).Raw("SELECT circles.* FROM circles LEFT JOIN user_circles on circles.id = user_circles.circle_id WHERE user_circles.user_id = ? AND user_circles.role = 'admin'", userID).Scan(&circle).Error; err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &circle, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *CircleRepository) AssignDefaultCircle(c context.Context, userID int) error {
|
||||||
|
defaultCircle, err := r.GetDefaultCircle(c, userID)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.db.WithContext(c).Model(&uModel.User{}).Where("id = ?", userID).Update("circle_id", defaultCircle.ID).Error
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue