From f067573494622503f5db0f04577e19f0eba9fbe8 Mon Sep 17 00:00:00 2001 From: Chris Collins Date: Tue, 2 Jul 2024 17:25:20 -0400 Subject: [PATCH] feat(deprecation) Return actor entity with deprecation aspect (#10832) --- .../linkedin/datahub/graphql/GmsGraphQLEngine.java | 12 ++++++++++++ .../types/common/mappers/DeprecationMapper.java | 1 + .../src/main/resources/entity.graphql | 5 +++++ 3 files changed, 18 insertions(+) diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/GmsGraphQLEngine.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/GmsGraphQLEngine.java index 4b679b28b6..073f539a20 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/GmsGraphQLEngine.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/GmsGraphQLEngine.java @@ -59,6 +59,7 @@ import com.linkedin.datahub.graphql.generated.DataPlatformInstance; import com.linkedin.datahub.graphql.generated.DataQualityContract; import com.linkedin.datahub.graphql.generated.Dataset; import com.linkedin.datahub.graphql.generated.DatasetStatsSummary; +import com.linkedin.datahub.graphql.generated.Deprecation; import com.linkedin.datahub.graphql.generated.Domain; import com.linkedin.datahub.graphql.generated.ERModelRelationship; import com.linkedin.datahub.graphql.generated.ERModelRelationshipProperties; @@ -785,6 +786,7 @@ public class GmsGraphQLEngine { configureBusinessAttributeResolver(builder); configureBusinessAttributeAssociationResolver(builder); configureConnectionResolvers(builder); + configureDeprecationResolvers(builder); } private void configureOrganisationRoleResolvers(RuntimeWiring.Builder builder) { @@ -3150,4 +3152,14 @@ public class GmsGraphQLEngine { : null; }))); } + + private void configureDeprecationResolvers(final RuntimeWiring.Builder builder) { + builder.type( + "Deprecation", + typeWiring -> + typeWiring.dataFetcher( + "actorEntity", + new EntityTypeResolver( + entityTypes, (env) -> ((Deprecation) env.getSource()).getActorEntity()))); + } } diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/DeprecationMapper.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/DeprecationMapper.java index 8c3d72edfe..6959a6dcbd 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/DeprecationMapper.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/common/mappers/DeprecationMapper.java @@ -20,6 +20,7 @@ public class DeprecationMapper @Nullable QueryContext context, @Nonnull final com.linkedin.common.Deprecation input) { final Deprecation result = new Deprecation(); result.setActor(input.getActor().toString()); + result.setActorEntity(UrnToEntityMapper.map(context, input.getActor())); result.setDeprecated(input.isDeprecated()); result.setDecommissionTime(input.getDecommissionTime()); result.setNote(input.getNote()); diff --git a/datahub-graphql-core/src/main/resources/entity.graphql b/datahub-graphql-core/src/main/resources/entity.graphql index 89c7b4a4cd..246ace2fc0 100644 --- a/datahub-graphql-core/src/main/resources/entity.graphql +++ b/datahub-graphql-core/src/main/resources/entity.graphql @@ -8183,6 +8183,11 @@ type Deprecation { The user who will be credited for modifying this deprecation content """ actor: String + + """ + The hydrated user who will be credited for modifying this deprecation content + """ + actorEntity: Entity } """