28 lines
705 B
Go
28 lines
705 B
Go
package model
|
|
|
|
import (
|
|
"context"
|
|
|
|
"spark-server/internal/module/group/entity"
|
|
"spark-server/internal/pkg/errs"
|
|
)
|
|
|
|
// FindByOwnerAndName returns the active group owned by ownerID with the given name.
|
|
func (m *Repo) FindByOwnerAndName(ctx context.Context, ownerID int64, name string) (*entity.Group, error) {
|
|
if ownerID <= 0 || name == "" {
|
|
return nil, errs.ErrInvalidArgument
|
|
}
|
|
db, err := m.session(ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var row Group
|
|
err = db.Table("`t_groups`").
|
|
Where("owner_id = ? AND name = ? AND status = ?", ownerID, name, entity.StatusActive).
|
|
Order("id ASC").Limit(1).Take(&row).Error
|
|
if err != nil {
|
|
return nil, mapDBErr(err)
|
|
}
|
|
return row.entity(), nil
|
|
}
|