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/owned_vehicles_test.go b/internal/repositories/vehicle/owned_vehicles_test.go index 1510e389..a0032830 100644 --- a/internal/repositories/vehicle/owned_vehicles_test.go +++ b/internal/repositories/vehicle/owned_vehicles_test.go @@ -153,6 +153,7 @@ func (s *OwnedVehiclesRepoTestSuite) Test_GetOwnedVehicles_Success() { }, MintedAt: vehicles[1].MintedAt, Privileges: nil, + Image: "https://mockUrl.com/v1/vehicle/2/image", ImageURI: "https://mockUrl.com/v1/vehicle/2/image", DataURI: "https://dimoData/vehicles/2", }, @@ -171,6 +172,7 @@ func (s *OwnedVehiclesRepoTestSuite) Test_GetOwnedVehicles_Success() { }, MintedAt: vehicles[0].MintedAt, Privileges: nil, + Image: "https://mockUrl.com/v1/vehicle/1/image", ImageURI: "https://mockUrl.com/v1/vehicle/1/image", DataURI: "https://dimoData/vehicles/1", }, @@ -250,6 +252,7 @@ func (s *OwnedVehiclesRepoTestSuite) Test_GetOwnedVehicles_Pagination() { }, MintedAt: vehicles[1].MintedAt, Privileges: nil, + Image: "https://mockUrl.com/v1/vehicle/2/image", ImageURI: "https://mockUrl.com/v1/vehicle/2/image", DataURI: "https://dimoData/vehicles/2", }, @@ -332,6 +335,7 @@ func (s *OwnedVehiclesRepoTestSuite) Test_GetOwnedVehicles_Pagination_NextPage() MintedAt: vehicles[0].MintedAt, Privileges: nil, ImageURI: "https://mockUrl.com/v1/vehicle/1/image", + Image: "https://mockUrl.com/v1/vehicle/1/image", DataURI: "https://dimoData/vehicles/1", }, Cursor: "MQ==", 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 } diff --git a/internal/repositories/vehicle/vehicles_test.go b/internal/repositories/vehicle/vehicles_test.go index 70e2974c..dc87b7ff 100644 --- a/internal/repositories/vehicle/vehicles_test.go +++ b/internal/repositories/vehicle/vehicles_test.go @@ -175,6 +175,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Success() { Year: &vehicles[1].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/2/image", + Image: "https://mockUrl.com/v1/vehicle/2/image", DataURI: "https://dimoData/vehicles/2", }, Cursor: "Mg==", @@ -193,6 +194,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Success() { Year: &vehicles[0].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/1/image", + Image: "https://mockUrl.com/v1/vehicle/1/image", DataURI: "https://dimoData/vehicles/1", }, Cursor: "MQ==", @@ -279,6 +281,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Pagination( Year: &vehicles[1].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/2/image", + Image: "https://mockUrl.com/v1/vehicle/2/image", DataURI: "https://dimoData/vehicles/2", }, Cursor: "Mg==", @@ -366,6 +369,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Pagination_ Year: &vehicles[0].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/1/image", + Image: "https://mockUrl.com/v1/vehicle/1/image", DataURI: "https://dimoData/vehicles/1", }, Cursor: "MQ==", @@ -471,6 +475,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_OwnedByUser Year: &vehicles[1].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/2/image", + Image: "https://mockUrl.com/v1/vehicle/2/image", DataURI: "https://dimoData/vehicles/2", }, Cursor: "Mg==", @@ -489,6 +494,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_OwnedByUser Year: &vehicles[0].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/1/image", + Image: "https://mockUrl.com/v1/vehicle/1/image", DataURI: "https://dimoData/vehicles/1", }, Cursor: "MQ==", @@ -600,6 +606,7 @@ func (o *AccessibleVehiclesRepoTestSuite) TestVehiclesMultiplePrivsOnOne() { Year: &vehicles[1].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/2/image", + Image: "https://mockUrl.com/v1/vehicle/2/image", DataURI: "https://dimoData/vehicles/2", }, Cursor: "Mg==", @@ -618,6 +625,7 @@ func (o *AccessibleVehiclesRepoTestSuite) TestVehiclesMultiplePrivsOnOne() { Year: &vehicles[0].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/1/image", + Image: "https://mockUrl.com/v1/vehicle/1/image", DataURI: "https://dimoData/vehicles/1", }, Cursor: "MQ==", @@ -725,6 +733,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Pagination_ Year: &vehicles[2].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/3/image", + Image: "https://mockUrl.com/v1/vehicle/3/image", DataURI: "https://dimoData/vehicles/3", }, Cursor: "Mw==", @@ -746,6 +755,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Pagination_ Year: &vehicles[1].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/2/image", + Image: "https://mockUrl.com/v1/vehicle/2/image", DataURI: "https://dimoData/vehicles/2", }, Cursor: "Mg==", @@ -858,6 +868,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Pagination_ Year: &vehicles[1].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/2/image", + Image: "https://mockUrl.com/v1/vehicle/2/image", DataURI: "https://dimoData/vehicles/2", }, Cursor: "Mg==", @@ -961,6 +972,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Pagination_ Year: &vehicles[1].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/2/image", + Image: "https://mockUrl.com/v1/vehicle/2/image", DataURI: "https://dimoData/vehicles/2", }, Cursor: "Mg==", @@ -979,6 +991,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Pagination_ Year: &vehicles[0].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/1/image", + Image: "https://mockUrl.com/v1/vehicle/1/image", DataURI: "https://dimoData/vehicles/1", }, Cursor: "MQ==", @@ -1085,6 +1098,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Pagination_ Year: &vehicles[3].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/4/image", + Image: "https://mockUrl.com/v1/vehicle/4/image", DataURI: "https://dimoData/vehicles/4", }, Cursor: "NA==", @@ -1106,6 +1120,7 @@ func (o *AccessibleVehiclesRepoTestSuite) Test_GetAccessibleVehicles_Pagination_ Year: &vehicles[2].Year.Int, }, ImageURI: "https://mockUrl.com/v1/vehicle/3/image", + Image: "https://mockUrl.com/v1/vehicle/3/image", DataURI: "https://dimoData/vehicles/3", }, Cursor: "Mw==",