homebox/backend/internal/data/repo/repos_all.go

38 lines
1.2 KiB
Go
Raw Normal View History

// Package repo provides the data access layer for the application.
2022-08-30 02:30:36 +00:00
package repo
import (
"github.com/hay-kot/homebox/backend/internal/core/blobstore"
"github.com/hay-kot/homebox/backend/internal/core/services/reporting/eventbus"
"github.com/hay-kot/homebox/backend/internal/data/ent"
)
2022-08-30 02:30:36 +00:00
// AllRepos is a container for all the repository interfaces
type AllRepos struct {
Users *UserRepository
AuthTokens *TokenRepository
Groups *GroupRepository
Locations *LocationRepository
Labels *LabelRepository
Items *ItemsRepository
Docs *DocumentRepository
Attachments *AttachmentRepo
MaintEntry *MaintenanceEntryRepository
Notifiers *NotifierRepository
2022-08-30 02:30:36 +00:00
}
func New(db *ent.Client, bus *eventbus.EventBus, root string) *AllRepos {
2022-08-30 02:30:36 +00:00
return &AllRepos{
Users: &UserRepository{db},
AuthTokens: &TokenRepository{db},
Groups: NewGroupRepository(db),
Locations: &LocationRepository{db, bus},
Labels: &LabelRepository{db, bus},
Items: &ItemsRepository{db, bus},
Docs: &DocumentRepository{db, blobstore.NewLocalBlobStore(root)},
Attachments: &AttachmentRepo{db},
MaintEntry: &MaintenanceEntryRepository{db},
Notifiers: NewNotifierRepository(db),
2022-08-30 02:30:36 +00:00
}
}