mirror of
https://github.com/stashapp/stash.git
synced 2025-12-06 16:34:02 +01:00
Fix make generate-dataloaders and the extra time import
This commit is contained in:
parent
1bcf2e262c
commit
682f15e63d
2 changed files with 55 additions and 17 deletions
|
|
@ -32,7 +32,34 @@ import (
|
||||||
|
|
||||||
// Work around bug in dataloaden https://github.com/vektah/dataloaden/issues/54
|
// Work around bug in dataloaden https://github.com/vektah/dataloaden/issues/54
|
||||||
type Time struct {
|
type Time struct {
|
||||||
time.Time
|
time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper functions for time conversion
|
||||||
|
func timeToTime(t *time.Time) *Time {
|
||||||
|
if t == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return &Time{*t}
|
||||||
|
}
|
||||||
|
|
||||||
|
func timesToTimes(times []*time.Time) []*Time {
|
||||||
|
result := make([]*Time, len(times))
|
||||||
|
for i, t := range times {
|
||||||
|
result[i] = timeToTime(t)
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func timeSlicesToTimeSlices(timeSlices [][]time.Time) [][]Time {
|
||||||
|
result := make([][]Time, len(timeSlices))
|
||||||
|
for i, slice := range timeSlices {
|
||||||
|
result[i] = make([]Time, len(slice))
|
||||||
|
for j, t := range slice {
|
||||||
|
result[i][j] = Time{t}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
type contextKey struct{ name string }
|
type contextKey struct{ name string }
|
||||||
|
|
@ -357,35 +384,44 @@ func (m Middleware) fetchScenesPlayCount(ctx context.Context) func(keys []int) (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m Middleware) fetchScenesOHistory(ctx context.Context) func(keys []int) ([][]time.Time, []error) {
|
func (m Middleware) fetchScenesOHistory(ctx context.Context) func(keys []int) ([][]Time, []error) {
|
||||||
return func(keys []int) (ret [][]time.Time, errs []error) {
|
return func(keys []int) (ret [][]Time, errs []error) {
|
||||||
|
var timeRet [][]time.Time
|
||||||
err := m.Repository.WithDB(ctx, func(ctx context.Context) error {
|
err := m.Repository.WithDB(ctx, func(ctx context.Context) error {
|
||||||
var err error
|
var err error
|
||||||
ret, err = m.Repository.Scene.GetManyODates(ctx, keys)
|
timeRet, err = m.Repository.Scene.GetManyODates(ctx, keys)
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
|
||||||
|
ret = timeSlicesToTimeSlices(timeRet)
|
||||||
return ret, toErrorSlice(err)
|
return ret, toErrorSlice(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m Middleware) fetchScenesPlayHistory(ctx context.Context) func(keys []int) ([][]time.Time, []error) {
|
func (m Middleware) fetchScenesPlayHistory(ctx context.Context) func(keys []int) ([][]Time, []error) {
|
||||||
return func(keys []int) (ret [][]time.Time, errs []error) {
|
return func(keys []int) (ret [][]Time, errs []error) {
|
||||||
|
var timeRet [][]time.Time
|
||||||
err := m.Repository.WithDB(ctx, func(ctx context.Context) error {
|
err := m.Repository.WithDB(ctx, func(ctx context.Context) error {
|
||||||
var err error
|
var err error
|
||||||
ret, err = m.Repository.Scene.GetManyViewDates(ctx, keys)
|
timeRet, err = m.Repository.Scene.GetManyViewDates(ctx, keys)
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
|
||||||
|
ret = timeSlicesToTimeSlices(timeRet)
|
||||||
return ret, toErrorSlice(err)
|
return ret, toErrorSlice(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m Middleware) fetchScenesLastPlayed(ctx context.Context) func(keys []int) ([]*time.Time, []error) {
|
func (m Middleware) fetchScenesLastPlayed(ctx context.Context) func(keys []int) ([]*Time, []error) {
|
||||||
return func(keys []int) (ret []*time.Time, errs []error) {
|
return func(keys []int) (ret []*Time, errs []error) {
|
||||||
|
var timeRet []*time.Time
|
||||||
err := m.Repository.WithDB(ctx, func(ctx context.Context) error {
|
err := m.Repository.WithDB(ctx, func(ctx context.Context) error {
|
||||||
var err error
|
var err error
|
||||||
ret, err = m.Repository.Scene.GetManyLastViewed(ctx, keys)
|
timeRet, err = m.Repository.Scene.GetManyLastViewed(ctx, keys)
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
|
|
||||||
|
ret = timesToTimes(timeRet)
|
||||||
return ret, toErrorSlice(err)
|
return ret, toErrorSlice(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -367,7 +367,11 @@ func (r *sceneResolver) LastPlayedAt(ctx context.Context, obj *models.Scene) (*t
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret, nil
|
if ret == nil {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return &ret.Time, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *sceneResolver) PlayCount(ctx context.Context, obj *models.Scene) (*int, error) {
|
func (r *sceneResolver) PlayCount(ctx context.Context, obj *models.Scene) (*int, error) {
|
||||||
|
|
@ -385,11 +389,10 @@ func (r *sceneResolver) PlayHistory(ctx context.Context, obj *models.Scene) ([]*
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert to pointer slice
|
// convert to pointer slice of time.Time
|
||||||
ptrRet := make([]*time.Time, len(ret))
|
ptrRet := make([]*time.Time, len(ret))
|
||||||
for i, t := range ret {
|
for i, t := range ret {
|
||||||
tt := t
|
ptrRet[i] = &t.Time
|
||||||
ptrRet[i] = &tt
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ptrRet, nil
|
return ptrRet, nil
|
||||||
|
|
@ -401,11 +404,10 @@ func (r *sceneResolver) OHistory(ctx context.Context, obj *models.Scene) ([]*tim
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert to pointer slice
|
// convert to pointer slice of time.Time
|
||||||
ptrRet := make([]*time.Time, len(ret))
|
ptrRet := make([]*time.Time, len(ret))
|
||||||
for i, t := range ret {
|
for i, t := range ret {
|
||||||
tt := t
|
ptrRet[i] = &t.Time
|
||||||
ptrRet[i] = &tt
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ptrRet, nil
|
return ptrRet, nil
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue