From 15fd072e3acaba71f41aa4426d934725d15f26a7 Mon Sep 17 00:00:00 2001 From: Dylan Moreland Date: Wed, 15 May 2024 12:24:02 -0400 Subject: [PATCH] Reinstate and populate Vehicle.image as a @deprecated field --- graph/generated.go | 69 +++++++++++++++++++++++ graph/model/models_gen.go | 1 + graph/schema/vehicle.graphqls | 1 + internal/repositories/vehicle/vehicles.go | 1 + 4 files changed, 72 insertions(+) diff --git a/graph/generated.go b/graph/generated.go index 67105681..2a9fedd9 100644 --- a/graph/generated.go +++ b/graph/generated.go @@ -233,6 +233,7 @@ type ComplexityRoot struct { Definition func(childComplexity int) int Earnings func(childComplexity int) int ID func(childComplexity int) int + Image func(childComplexity int) int ImageURI func(childComplexity int) int Manufacturer func(childComplexity int) int MintedAt func(childComplexity int) int @@ -1167,6 +1168,13 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.Vehicle.ID(childComplexity), true + case "Vehicle.image": + if e.complexity.Vehicle.Image == nil { + break + } + + return e.complexity.Vehicle.Image(childComplexity), true + case "Vehicle.imageUri": if e.complexity.Vehicle.ImageURI == nil { break @@ -2508,6 +2516,8 @@ func (ec *executionContext) fieldContext_AftermarketDevice_vehicle(_ context.Con return ec.fieldContext_Vehicle_name(ctx, field) case "imageUri": return ec.fieldContext_Vehicle_imageUri(ctx, field) + case "image": + return ec.fieldContext_Vehicle_image(ctx, field) case "earnings": return ec.fieldContext_Vehicle_earnings(ctx, field) case "dataUri": @@ -3513,6 +3523,8 @@ func (ec *executionContext) fieldContext_DCN_vehicle(_ context.Context, field gr return ec.fieldContext_Vehicle_name(ctx, field) case "imageUri": return ec.fieldContext_Vehicle_imageUri(ctx, field) + case "image": + return ec.fieldContext_Vehicle_image(ctx, field) case "earnings": return ec.fieldContext_Vehicle_earnings(ctx, field) case "dataUri": @@ -4453,6 +4465,8 @@ func (ec *executionContext) fieldContext_Earning_vehicle(_ context.Context, fiel return ec.fieldContext_Vehicle_name(ctx, field) case "imageUri": return ec.fieldContext_Vehicle_imageUri(ctx, field) + case "image": + return ec.fieldContext_Vehicle_image(ctx, field) case "earnings": return ec.fieldContext_Vehicle_earnings(ctx, field) case "dataUri": @@ -6472,6 +6486,8 @@ func (ec *executionContext) fieldContext_Query_vehicle(ctx context.Context, fiel return ec.fieldContext_Vehicle_name(ctx, field) case "imageUri": return ec.fieldContext_Vehicle_imageUri(ctx, field) + case "image": + return ec.fieldContext_Vehicle_image(ctx, field) case "earnings": return ec.fieldContext_Vehicle_earnings(ctx, field) case "dataUri": @@ -7996,6 +8012,50 @@ func (ec *executionContext) fieldContext_Vehicle_imageUri(_ context.Context, fie return fc, nil } +func (ec *executionContext) _Vehicle_image(ctx context.Context, field graphql.CollectedField, obj *model.Vehicle) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Vehicle_image(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + ctx = rctx // use context from middleware stack in children + return obj.Image, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Vehicle_image(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Vehicle", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + func (ec *executionContext) _Vehicle_earnings(ctx context.Context, field graphql.CollectedField, obj *model.Vehicle) (ret graphql.Marshaler) { fc, err := ec.fieldContext_Vehicle_earnings(ctx, field) if err != nil { @@ -8244,6 +8304,8 @@ func (ec *executionContext) fieldContext_VehicleConnection_nodes(_ context.Conte return ec.fieldContext_Vehicle_name(ctx, field) case "imageUri": return ec.fieldContext_Vehicle_imageUri(ctx, field) + case "image": + return ec.fieldContext_Vehicle_image(ctx, field) case "earnings": return ec.fieldContext_Vehicle_earnings(ctx, field) case "dataUri": @@ -8481,6 +8543,8 @@ func (ec *executionContext) fieldContext_VehicleEdge_node(_ context.Context, fie return ec.fieldContext_Vehicle_name(ctx, field) case "imageUri": return ec.fieldContext_Vehicle_imageUri(ctx, field) + case "image": + return ec.fieldContext_Vehicle_image(ctx, field) case "earnings": return ec.fieldContext_Vehicle_earnings(ctx, field) case "dataUri": @@ -12724,6 +12788,11 @@ func (ec *executionContext) _Vehicle(ctx context.Context, sel ast.SelectionSet, if out.Values[i] == graphql.Null { atomic.AddUint32(&out.Invalids, 1) } + case "image": + out.Values[i] = ec._Vehicle_image(ctx, field, obj) + if out.Values[i] == graphql.Null { + atomic.AddUint32(&out.Invalids, 1) + } case "earnings": field := field diff --git a/graph/model/models_gen.go b/graph/model/models_gen.go index c290f8f2..7e392ed7 100644 --- a/graph/model/models_gen.go +++ b/graph/model/models_gen.go @@ -344,6 +344,7 @@ type Vehicle struct { Name string `json:"name"` // A URI containing an image for the vehicle. ImageURI string `json:"imageUri"` + Image string `json:"image"` Earnings *VehicleEarnings `json:"earnings,omitempty"` DataURI string `json:"dataUri"` ManufacturerID int `json:"-"` diff --git a/graph/schema/vehicle.graphqls b/graph/schema/vehicle.graphqls index 6ad6e24c..047bd094 100644 --- a/graph/schema/vehicle.graphqls +++ b/graph/schema/vehicle.graphqls @@ -127,6 +127,7 @@ type Vehicle implements Node { A URI containing an image for the vehicle. """ imageUri: String! + image: String! @deprecated(reason: "Use `imageUri` instead.") earnings: VehicleEarnings diff --git a/internal/repositories/vehicle/vehicles.go b/internal/repositories/vehicle/vehicles.go index 61b49c2a..ab49bc45 100644 --- a/internal/repositories/vehicle/vehicles.go +++ b/internal/repositories/vehicle/vehicles.go @@ -279,6 +279,7 @@ func ToAPI(v *models.Vehicle, imageURI string, dataURI string) (*gmodel.Vehicle, ManufacturerID: v.ManufacturerID, Name: name, ImageURI: imageURI, + Image: imageURI, DataURI: dataURI, }, nil }