From 6693cb589c81b0d9314bd6cffbc40fcfafcf800f Mon Sep 17 00:00:00 2001 From: viktorstrate Date: Tue, 27 Apr 2021 20:31:15 +0200 Subject: [PATCH] Fix incorrect media type resolver func --- api/gqlgen.yml | 2 +- api/graphql/generated.go | 25 +++++++++++++++++-------- api/graphql/resolvers/media.go | 4 ++-- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/api/gqlgen.yml b/api/gqlgen.yml index f0601de8..4f1052dc 100644 --- a/api/gqlgen.yml +++ b/api/gqlgen.yml @@ -36,7 +36,7 @@ models: resolver: true faces: resolver: true - mediaType: + type: resolver: true MediaURL: model: github.com/photoview/photoview/api/graphql/models.MediaURL diff --git a/api/graphql/generated.go b/api/graphql/generated.go index 5fb9a782..c829f368 100644 --- a/api/graphql/generated.go +++ b/api/graphql/generated.go @@ -287,7 +287,7 @@ type MediaResolver interface { Exif(ctx context.Context, obj *models.Media) (*models.MediaEXIF, error) Favorite(ctx context.Context, obj *models.Media) (bool, error) - + Type(ctx context.Context, obj *models.Media) (models.MediaType, error) Shares(ctx context.Context, obj *models.Media) ([]*models.ShareToken, error) Downloads(ctx context.Context, obj *models.Media) ([]*models.MediaDownload, error) Faces(ctx context.Context, obj *models.Media) ([]*models.ImageFace, error) @@ -4117,14 +4117,14 @@ func (ec *executionContext) _Media_type(ctx context.Context, field graphql.Colle Object: "Media", Field: field, Args: nil, - IsMethod: false, - IsResolver: false, + IsMethod: true, + IsResolver: true, } ctx = graphql.WithFieldContext(ctx, fc) resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { ctx = rctx // use context from middleware stack in children - return obj.Type, nil + return ec.resolvers.Media().Type(rctx, obj) }) if err != nil { ec.Error(ctx, err) @@ -10345,10 +10345,19 @@ func (ec *executionContext) _Media(ctx context.Context, sel ast.SelectionSet, ob return res }) case "type": - out.Values[i] = ec._Media_type(ctx, field, obj) - if out.Values[i] == graphql.Null { - atomic.AddUint32(&invalids, 1) - } + field := field + out.Concurrently(i, func() (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._Media_type(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&invalids, 1) + } + return res + }) case "shares": field := field out.Concurrently(i, func() (res graphql.Marshaler) { diff --git a/api/graphql/resolvers/media.go b/api/graphql/resolvers/media.go index 882d6bd5..aae02a70 100644 --- a/api/graphql/resolvers/media.go +++ b/api/graphql/resolvers/media.go @@ -109,9 +109,9 @@ func (r *Resolver) Media() api.MediaResolver { return &mediaResolver{r} } -func (r *mediaResolver) MediaType(ctx context.Context, media *models.Media) (*models.MediaType, error) { +func (r *mediaResolver) Type(ctx context.Context, media *models.Media) (models.MediaType, error) { formattedType := models.MediaType(strings.Title(string(media.Type))) - return &formattedType, nil + return formattedType, nil } func (r *mediaResolver) Shares(ctx context.Context, media *models.Media) ([]*models.ShareToken, error) {