mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 12:24:38 +03:00
Find scene markers by ID (#5567)
This commit is contained in:
@@ -45,6 +45,7 @@ type Query {
|
|||||||
findSceneMarkers(
|
findSceneMarkers(
|
||||||
scene_marker_filter: SceneMarkerFilterType
|
scene_marker_filter: SceneMarkerFilterType
|
||||||
filter: FindFilterType
|
filter: FindFilterType
|
||||||
|
ids: [ID!]
|
||||||
): FindSceneMarkersResultType!
|
): FindSceneMarkersResultType!
|
||||||
|
|
||||||
findImage(id: ID, checksum: String): Image
|
findImage(id: ID, checksum: String): Image
|
||||||
|
|||||||
@@ -4,14 +4,31 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"github.com/stashapp/stash/pkg/models"
|
"github.com/stashapp/stash/pkg/models"
|
||||||
|
"github.com/stashapp/stash/pkg/sliceutil/stringslice"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (r *queryResolver) FindSceneMarkers(ctx context.Context, sceneMarkerFilter *models.SceneMarkerFilterType, filter *models.FindFilterType) (ret *FindSceneMarkersResultType, err error) {
|
func (r *queryResolver) FindSceneMarkers(ctx context.Context, sceneMarkerFilter *models.SceneMarkerFilterType, filter *models.FindFilterType, ids []string) (ret *FindSceneMarkersResultType, err error) {
|
||||||
|
idInts, err := stringslice.StringSliceToIntSlice(ids)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
if err := r.withReadTxn(ctx, func(ctx context.Context) error {
|
if err := r.withReadTxn(ctx, func(ctx context.Context) error {
|
||||||
sceneMarkers, total, err := r.repository.SceneMarker.Query(ctx, sceneMarkerFilter, filter)
|
var sceneMarkers []*models.SceneMarker
|
||||||
|
var err error
|
||||||
|
var total int
|
||||||
|
|
||||||
|
if len(idInts) > 0 {
|
||||||
|
sceneMarkers, err = r.repository.SceneMarker.FindMany(ctx, idInts)
|
||||||
|
total = len(sceneMarkers)
|
||||||
|
} else {
|
||||||
|
sceneMarkers, total, err = r.repository.SceneMarker.Query(ctx, sceneMarkerFilter, filter)
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = &FindSceneMarkersResultType{
|
ret = &FindSceneMarkersResultType{
|
||||||
Count: total,
|
Count: total,
|
||||||
SceneMarkers: sceneMarkers,
|
SceneMarkers: sceneMarkers,
|
||||||
|
|||||||
Reference in New Issue
Block a user