mirror of
				https://github.com/datahub-project/datahub.git
				synced 2025-11-04 12:51:23 +00:00 
			
		
		
		
	Start using ingest API instead of snapshot endpoint for datasets & users
This commit is contained in:
		
							parent
							
								
									f929190e6a
								
							
						
					
					
						commit
						d7004ffb1d
					
				@ -1,32 +0,0 @@
 | 
			
		||||
package com.linkedin.metadata.dao;
 | 
			
		||||
 | 
			
		||||
import com.linkedin.common.urn.CorpGroupUrn;
 | 
			
		||||
import com.linkedin.identity.CorpGroupKey;
 | 
			
		||||
import com.linkedin.metadata.snapshot.CorpGroupSnapshot;
 | 
			
		||||
import com.linkedin.restli.common.ComplexResourceKey;
 | 
			
		||||
import com.linkedin.restli.common.EmptyRecord;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import javax.annotation.Nonnull;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * A snapshot request builder for corp group info entities.
 | 
			
		||||
 */
 | 
			
		||||
public class CorpGroupSnapshotRequestBuilder
 | 
			
		||||
    extends BaseSnapshotRequestBuilder<CorpGroupSnapshot, CorpGroupUrn> {
 | 
			
		||||
 | 
			
		||||
  private static final String BASE_URI_TEMPLATE = "corpGroups/{corpGroup}/snapshot";
 | 
			
		||||
 | 
			
		||||
  public CorpGroupSnapshotRequestBuilder() {
 | 
			
		||||
    super(CorpGroupSnapshot.class, CorpGroupUrn.class, BASE_URI_TEMPLATE);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Nonnull
 | 
			
		||||
  @Override
 | 
			
		||||
  protected Map<String, Object> pathKeys(@Nonnull CorpGroupUrn urn) {
 | 
			
		||||
    return Collections.singletonMap("corpGroup", new ComplexResourceKey<>(
 | 
			
		||||
        new CorpGroupKey().setName(urn.getGroupNameEntity()),
 | 
			
		||||
        new EmptyRecord()));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -1,32 +0,0 @@
 | 
			
		||||
package com.linkedin.metadata.dao;
 | 
			
		||||
 | 
			
		||||
import com.linkedin.common.urn.CorpuserUrn;
 | 
			
		||||
import com.linkedin.identity.CorpUserKey;
 | 
			
		||||
import com.linkedin.metadata.snapshot.CorpUserSnapshot;
 | 
			
		||||
import com.linkedin.restli.common.ComplexResourceKey;
 | 
			
		||||
import com.linkedin.restli.common.EmptyRecord;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import javax.annotation.Nonnull;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * A snapshot request builder for corp user info entities.
 | 
			
		||||
 */
 | 
			
		||||
public class CorpUserSnapshotRequestBuilder
 | 
			
		||||
    extends BaseSnapshotRequestBuilder<CorpUserSnapshot, CorpuserUrn> {
 | 
			
		||||
 | 
			
		||||
  private static final String BASE_URI_TEMPLATE = "corpUsers/{corpUser}/snapshot";
 | 
			
		||||
 | 
			
		||||
  public CorpUserSnapshotRequestBuilder() {
 | 
			
		||||
    super(CorpUserSnapshot.class, CorpuserUrn.class, BASE_URI_TEMPLATE);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Nonnull
 | 
			
		||||
  @Override
 | 
			
		||||
  protected Map<String, Object> pathKeys(@Nonnull CorpuserUrn urn) {
 | 
			
		||||
    return Collections.singletonMap("corpUser", new ComplexResourceKey<>(
 | 
			
		||||
        new CorpUserKey().setName(urn.getUsernameEntity()),
 | 
			
		||||
        new EmptyRecord()));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,17 @@
 | 
			
		||||
package com.linkedin.metadata.dao;
 | 
			
		||||
 | 
			
		||||
import com.linkedin.common.urn.DatasetUrn;
 | 
			
		||||
import com.linkedin.metadata.snapshot.DatasetSnapshot;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * An action request builder for corp user info entities.
 | 
			
		||||
 */
 | 
			
		||||
public class DatasetActionRequestBuilder extends BaseActionRequestBuilder<DatasetSnapshot, DatasetUrn> {
 | 
			
		||||
 | 
			
		||||
  private static final String BASE_URI_TEMPLATE = "datasets";
 | 
			
		||||
 | 
			
		||||
  public DatasetActionRequestBuilder() {
 | 
			
		||||
    super(DatasetSnapshot.class, DatasetUrn.class, BASE_URI_TEMPLATE);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -11,19 +11,19 @@ import javax.annotation.Nonnull;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * A class that holds a list of registered {@link BaseSnapshotRequestBuilder} and provides Urn-to-builder lookup.
 | 
			
		||||
 * A class that holds a list of registered {@link BaseRequestBuilder} and provides Urn-to-builder lookup.
 | 
			
		||||
 */
 | 
			
		||||
public class RequestBuilders {
 | 
			
		||||
 | 
			
		||||
  private static final Set<BaseSnapshotRequestBuilder> REQUEST_BUILDERS =
 | 
			
		||||
      Collections.unmodifiableSet(new HashSet<BaseSnapshotRequestBuilder>() {
 | 
			
		||||
  private static final Set<BaseRequestBuilder> REQUEST_BUILDERS =
 | 
			
		||||
      Collections.unmodifiableSet(new HashSet<BaseRequestBuilder>() {
 | 
			
		||||
        {
 | 
			
		||||
          add(new CorpUserSnapshotRequestBuilder());
 | 
			
		||||
          add(new DatasetSnapshotRequestBuilder());
 | 
			
		||||
          add(new CorpUserActionRequestBuilder());
 | 
			
		||||
          add(new DatasetActionRequestBuilder());
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
 | 
			
		||||
  private static final Map<Class<? extends Urn>, BaseSnapshotRequestBuilder> URN_BUILDER_MAP =
 | 
			
		||||
  private static final Map<Class<? extends Urn>, BaseRequestBuilder> URN_BUILDER_MAP =
 | 
			
		||||
      REQUEST_BUILDERS.stream().collect(Collectors.toMap(builder -> builder.urnClass(), Function.identity()));
 | 
			
		||||
 | 
			
		||||
  private RequestBuilders() {
 | 
			
		||||
@ -31,13 +31,29 @@ public class RequestBuilders {
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Nonnull
 | 
			
		||||
  public static <URN extends Urn> BaseSnapshotRequestBuilder getBuilder(@Nonnull URN urn) {
 | 
			
		||||
    final Class<? extends Urn> urnClass = urn.getClass();
 | 
			
		||||
    final BaseSnapshotRequestBuilder builder = URN_BUILDER_MAP.get(urnClass);
 | 
			
		||||
  public static <URN extends Urn> BaseRequestBuilder getBuilder(@Nonnull URN urn) {
 | 
			
		||||
    final Class<? extends Urn> urnClass = getBaseUrnClass(urn);
 | 
			
		||||
    final BaseRequestBuilder builder = URN_BUILDER_MAP.get(urnClass);
 | 
			
		||||
    if (builder == null) {
 | 
			
		||||
      throw new IllegalArgumentException(urnClass.getCanonicalName() + " is not a supported URN type");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return builder;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Returns the base URN class for an urn object that may actually be an instance of a subclass of the base URN.
 | 
			
		||||
   */
 | 
			
		||||
  @Nonnull
 | 
			
		||||
  private static <URN extends Urn> Class<? extends Urn> getBaseUrnClass(@Nonnull URN urn) {
 | 
			
		||||
    Class<? extends Urn> clazz = urn.getClass();
 | 
			
		||||
    if (clazz == Urn.class) {
 | 
			
		||||
      throw new IllegalArgumentException("urn must be a subclass of Urn");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    while (clazz.getSuperclass() != Urn.class) {
 | 
			
		||||
      clazz = (Class<? extends Urn>) clazz.getSuperclass();
 | 
			
		||||
    }
 | 
			
		||||
    return clazz;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user