Data layer restructuring (#997)

* Move query builders to sqlite package
* Add transaction system
* Wrap model resolvers in transaction
* Add error return value for StringSliceToIntSlice
* Update/refactor mutation resolvers
* Convert query builders
* Remove unused join types
* Add stash id unit tests
* Use WAL journal mode
This commit is contained in:
WithoutPants
2021-01-18 12:23:20 +11:00
committed by GitHub
parent 7bae990c67
commit 1e04deb3d4
168 changed files with 12683 additions and 10863 deletions

View File

@@ -7,7 +7,6 @@ import (
"github.com/stashapp/stash/pkg/manager/jsonschema"
"github.com/stashapp/stash/pkg/models"
"github.com/stashapp/stash/pkg/models/mocks"
"github.com/stashapp/stash/pkg/models/modelstest"
"github.com/stretchr/testify/assert"
"testing"
@@ -52,7 +51,7 @@ var frontImageBytes = []byte("frontImageBytes")
var backImageBytes = []byte("backImageBytes")
var studio models.Studio = models.Studio{
Name: modelstest.NullString(studioName),
Name: models.NullString(studioName),
}
var createTime time.Time = time.Date(2001, 01, 01, 0, 0, 0, 0, time.UTC)
@@ -61,8 +60,8 @@ var updateTime time.Time = time.Date(2002, 01, 01, 0, 0, 0, 0, time.UTC)
func createFullMovie(id int, studioID int) models.Movie {
return models.Movie{
ID: id,
Name: modelstest.NullString(movieName),
Aliases: modelstest.NullString(movieAliases),
Name: models.NullString(movieName),
Aliases: models.NullString(movieAliases),
Date: date,
Rating: sql.NullInt64{
Int64: rating,
@@ -72,9 +71,9 @@ func createFullMovie(id int, studioID int) models.Movie {
Int64: duration,
Valid: true,
},
Director: modelstest.NullString(director),
Synopsis: modelstest.NullString(synopsis),
URL: modelstest.NullString(url),
Director: models.NullString(director),
Synopsis: models.NullString(synopsis),
URL: models.NullString(url),
StudioID: sql.NullInt64{
Int64: int64(studioID),
Valid: true,

View File

@@ -117,7 +117,7 @@ func (i *Importer) createStudio(name string) (int, error) {
func (i *Importer) PostImport(id int) error {
if len(i.frontImageData) > 0 {
if err := i.ReaderWriter.UpdateMovieImages(id, i.frontImageData, i.backImageData); err != nil {
if err := i.ReaderWriter.UpdateImages(id, i.frontImageData, i.backImageData); err != nil {
return fmt.Errorf("error setting movie images: %s", err.Error())
}
}

View File

@@ -7,7 +7,6 @@ import (
"github.com/stashapp/stash/pkg/manager/jsonschema"
"github.com/stashapp/stash/pkg/models"
"github.com/stashapp/stash/pkg/models/mocks"
"github.com/stashapp/stash/pkg/models/modelstest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
)
@@ -158,10 +157,10 @@ func TestImporterPostImport(t *testing.T) {
backImageData: backImageBytes,
}
updateMovieImageErr := errors.New("UpdateMovieImage error")
updateMovieImageErr := errors.New("UpdateImages error")
readerWriter.On("UpdateMovieImages", movieID, frontImageBytes, backImageBytes).Return(nil).Once()
readerWriter.On("UpdateMovieImages", errImageID, frontImageBytes, backImageBytes).Return(updateMovieImageErr).Once()
readerWriter.On("UpdateImages", movieID, frontImageBytes, backImageBytes).Return(nil).Once()
readerWriter.On("UpdateImages", errImageID, frontImageBytes, backImageBytes).Return(updateMovieImageErr).Once()
err := i.PostImport(movieID)
assert.Nil(t, err)
@@ -210,11 +209,11 @@ func TestCreate(t *testing.T) {
readerWriter := &mocks.MovieReaderWriter{}
movie := models.Movie{
Name: modelstest.NullString(movieName),
Name: models.NullString(movieName),
}
movieErr := models.Movie{
Name: modelstest.NullString(movieNameErr),
Name: models.NullString(movieNameErr),
}
i := Importer{
@@ -244,11 +243,11 @@ func TestUpdate(t *testing.T) {
readerWriter := &mocks.MovieReaderWriter{}
movie := models.Movie{
Name: modelstest.NullString(movieName),
Name: models.NullString(movieName),
}
movieErr := models.Movie{
Name: modelstest.NullString(movieNameErr),
Name: models.NullString(movieNameErr),
}
i := Importer{