woodpecker/store/store.go
2015-10-27 16:48:05 -07:00

53 lines
1,016 B
Go

package store
type Store interface {
Nodes() NodeStore
Users() UserStore
Repos() RepoStore
Keys() KeyStore
Builds() BuildStore
Jobs() JobStore
Logs() LogStore
}
type store struct {
name string
nodes NodeStore
users UserStore
repos RepoStore
keys KeyStore
builds BuildStore
jobs JobStore
logs LogStore
}
func (s *store) Nodes() NodeStore { return s.nodes }
func (s *store) Users() UserStore { return s.users }
func (s *store) Repos() RepoStore { return s.repos }
func (s *store) Keys() KeyStore { return s.keys }
func (s *store) Builds() BuildStore { return s.builds }
func (s *store) Jobs() JobStore { return s.jobs }
func (s *store) Logs() LogStore { return s.logs }
func (s *store) String() string { return s.name }
func New(
name string,
nodes NodeStore,
users UserStore,
repos RepoStore,
keys KeyStore,
builds BuildStore,
jobs JobStore,
logs LogStore,
) Store {
return &store{
name,
nodes,
users,
repos,
keys,
builds,
jobs,
logs,
}
}