10 changed files with 127 additions and 43 deletions
@ -0,0 +1,23 @@ |
|||||
|
package org.thingsboard.server.service.sync.vc.data; |
||||
|
|
||||
|
import org.thingsboard.server.common.data.EntityType; |
||||
|
import org.thingsboard.server.common.data.sync.ie.EntityExportSettings; |
||||
|
import org.thingsboard.server.common.data.sync.vc.request.create.ComplexVersionCreateRequest; |
||||
|
import org.thingsboard.server.service.security.model.SecurityUser; |
||||
|
|
||||
|
import java.util.HashMap; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
public class ComplexEntitiesExportCtx extends EntitiesExportCtx<ComplexVersionCreateRequest> { |
||||
|
|
||||
|
private final Map<EntityType, EntityExportSettings> settings = new HashMap<>(); |
||||
|
|
||||
|
public ComplexEntitiesExportCtx(SecurityUser user, CommitGitRequest commit, ComplexVersionCreateRequest request) { |
||||
|
super(user, commit, request); |
||||
|
request.getEntityTypes().forEach((type, config) -> settings.put(type, buildExportSettings(config))); |
||||
|
} |
||||
|
|
||||
|
public EntityExportSettings getSettings(EntityType entityType) { |
||||
|
return settings.get(entityType); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,37 @@ |
|||||
|
package org.thingsboard.server.service.sync.vc.data; |
||||
|
|
||||
|
import com.google.common.util.concurrent.ListenableFuture; |
||||
|
import lombok.Data; |
||||
|
import org.thingsboard.server.common.data.id.TenantId; |
||||
|
import org.thingsboard.server.common.data.sync.ie.EntityExportSettings; |
||||
|
import org.thingsboard.server.common.data.sync.vc.request.create.VersionCreateConfig; |
||||
|
import org.thingsboard.server.common.data.sync.vc.request.create.VersionCreateRequest; |
||||
|
import org.thingsboard.server.service.security.model.SecurityUser; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
|
||||
|
@Data |
||||
|
public class EntitiesExportCtx<R extends VersionCreateRequest> { |
||||
|
|
||||
|
protected final SecurityUser user; |
||||
|
protected final CommitGitRequest commit; |
||||
|
protected final R request; |
||||
|
private final List<ListenableFuture<Void>> futures = new ArrayList<>(); |
||||
|
|
||||
|
public void add(ListenableFuture<Void> future) { |
||||
|
futures.add(future); |
||||
|
} |
||||
|
|
||||
|
public TenantId getTenantId() { |
||||
|
return user.getTenantId(); |
||||
|
} |
||||
|
|
||||
|
protected static EntityExportSettings buildExportSettings(VersionCreateConfig config) { |
||||
|
return EntityExportSettings.builder() |
||||
|
.exportRelations(config.isSaveRelations()) |
||||
|
.exportAttributes(config.isSaveAttributes()) |
||||
|
.exportCredentials(config.isSaveCredentials()) |
||||
|
.build(); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
package org.thingsboard.server.service.sync.vc.data; |
||||
|
|
||||
|
import lombok.Getter; |
||||
|
import org.thingsboard.server.common.data.sync.ie.EntityExportSettings; |
||||
|
import org.thingsboard.server.common.data.sync.vc.request.create.SingleEntityVersionCreateRequest; |
||||
|
import org.thingsboard.server.service.security.model.SecurityUser; |
||||
|
|
||||
|
public class SimpleEntitiesExportCtx extends EntitiesExportCtx<SingleEntityVersionCreateRequest> { |
||||
|
|
||||
|
@Getter |
||||
|
private final EntityExportSettings settings; |
||||
|
|
||||
|
public SimpleEntitiesExportCtx(SecurityUser user, CommitGitRequest commit, SingleEntityVersionCreateRequest request) { |
||||
|
super(user, commit, request); |
||||
|
this.settings = request != null ? buildExportSettings(request.getConfig()) : null; |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue