mirror of
https://github.com/datahub-project/datahub.git
synced 2025-11-03 12:16:10 +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