mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
Model refactor, part 3 (#4152)
* Remove manager.Repository * Refactor other repositories * Fix tests and add database mock * Add AssertExpectations method * Refactor routes * Move default movie image to internal/static and add convenience methods * Refactor default performer image boxes
This commit is contained in:
@@ -6,59 +6,8 @@ import (
|
||||
"github.com/stashapp/stash/pkg/image"
|
||||
"github.com/stashapp/stash/pkg/models"
|
||||
"github.com/stashapp/stash/pkg/scene"
|
||||
"github.com/stashapp/stash/pkg/sqlite"
|
||||
"github.com/stashapp/stash/pkg/txn"
|
||||
)
|
||||
|
||||
type Repository struct {
|
||||
models.TxnManager
|
||||
|
||||
File models.FileReaderWriter
|
||||
Folder models.FolderReaderWriter
|
||||
Gallery models.GalleryReaderWriter
|
||||
GalleryChapter models.GalleryChapterReaderWriter
|
||||
Image models.ImageReaderWriter
|
||||
Movie models.MovieReaderWriter
|
||||
Performer models.PerformerReaderWriter
|
||||
Scene models.SceneReaderWriter
|
||||
SceneMarker models.SceneMarkerReaderWriter
|
||||
Studio models.StudioReaderWriter
|
||||
Tag models.TagReaderWriter
|
||||
SavedFilter models.SavedFilterReaderWriter
|
||||
}
|
||||
|
||||
func (r *Repository) WithTxn(ctx context.Context, fn txn.TxnFunc) error {
|
||||
return txn.WithTxn(ctx, r, fn)
|
||||
}
|
||||
|
||||
func (r *Repository) WithReadTxn(ctx context.Context, fn txn.TxnFunc) error {
|
||||
return txn.WithReadTxn(ctx, r, fn)
|
||||
}
|
||||
|
||||
func (r *Repository) WithDB(ctx context.Context, fn txn.TxnFunc) error {
|
||||
return txn.WithDatabase(ctx, r, fn)
|
||||
}
|
||||
|
||||
func sqliteRepository(d *sqlite.Database) Repository {
|
||||
txnRepo := d.TxnRepository()
|
||||
|
||||
return Repository{
|
||||
TxnManager: txnRepo,
|
||||
File: d.File,
|
||||
Folder: d.Folder,
|
||||
Gallery: d.Gallery,
|
||||
GalleryChapter: txnRepo.GalleryChapter,
|
||||
Image: d.Image,
|
||||
Movie: txnRepo.Movie,
|
||||
Performer: txnRepo.Performer,
|
||||
Scene: d.Scene,
|
||||
SceneMarker: txnRepo.SceneMarker,
|
||||
Studio: txnRepo.Studio,
|
||||
Tag: txnRepo.Tag,
|
||||
SavedFilter: txnRepo.SavedFilter,
|
||||
}
|
||||
}
|
||||
|
||||
type SceneService interface {
|
||||
Create(ctx context.Context, input *models.Scene, fileIDs []models.FileID, coverImage []byte) (*models.Scene, error)
|
||||
AssignFile(ctx context.Context, sceneID int, fileID models.FileID) error
|
||||
|
||||
Reference in New Issue
Block a user