mirror of
https://github.com/netbirdio/management-refactor.git
synced 2026-05-22 17:12:59 -07:00
48 lines
2.5 KiB
Go
48 lines
2.5 KiB
Go
package team
|
|
|
|
//go:generate go run github.com/golang/mock/mockgen -package team -destination=manager_mock.go -source=./manager.go -build_flags=-mod=mod
|
|
|
|
import (
|
|
"context"
|
|
"management/internal/shared/db"
|
|
"management/internal/shared/hook"
|
|
)
|
|
|
|
// needed for go:generate's mock run
|
|
// https://github.com/golang/mock/issues/621
|
|
type (
|
|
GroupHookEvent = *hook.Hook[*GroupEvent]
|
|
GroupHookErrorEvent = *hook.Hook[*GroupErrorEvent]
|
|
)
|
|
|
|
type Manager interface {
|
|
// User methods
|
|
GetUsersByAccount(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID string) ([]*User, error)
|
|
GetUserById(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID, userID string) (*User, error)
|
|
CreateUser(ctx context.Context, tx db.Transaction, user *User) (*User, error)
|
|
UpdateUser(ctx context.Context, tx db.Transaction, user *User) (*User, error)
|
|
DeleteUser(ctx context.Context, tx db.Transaction, user *User) error
|
|
|
|
// Group methods
|
|
GetGroupsByAccount(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID string) ([]*Group, error)
|
|
GetGroupsByUser(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID, userID string) ([]*Group, error)
|
|
GetGroupById(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID, groupID string) (*Group, error)
|
|
CreateGroup(ctx context.Context, tx db.Transaction, group *Group) (*Group, error)
|
|
UpdateGroup(ctx context.Context, tx db.Transaction, group *Group) (*Group, error)
|
|
DeleteGroup(ctx context.Context, tx db.Transaction, group *Group) error
|
|
OnGroupCreate() GroupHookEvent
|
|
OnGroupCreateError() GroupHookErrorEvent
|
|
OnGroupUpdate() GroupHookEvent
|
|
OnGroupUpdateError() GroupHookErrorEvent
|
|
OnGroupDelete() GroupHookEvent
|
|
OnGroupDeleteError() GroupHookErrorEvent
|
|
|
|
// PAT methods
|
|
GetPATSByAccount(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID string) ([]*PersonalAccessToken, error)
|
|
GetPATSByUser(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID, userID string) ([]*PersonalAccessToken, error)
|
|
GetPATById(ctx context.Context, tx db.Transaction, strength db.LockingStrength, accountID, patID string) (*PersonalAccessToken, error)
|
|
CreatePAT(ctx context.Context, tx db.Transaction, group *PersonalAccessToken) (*PersonalAccessToken, error)
|
|
UpdatePAT(ctx context.Context, tx db.Transaction, group *PersonalAccessToken) (*PersonalAccessToken, error)
|
|
DeletePAT(ctx context.Context, tx db.Transaction, group *PersonalAccessToken) error
|
|
}
|