Skip to content

Rename collection applicationRecord to applicationVersion #1429

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jan 12, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ public Mono<ApplicationQuery> getQueryByViewModeAndQueryId(boolean isViewMode, S
@JsonIgnore
public Mono<Map<String, Object>> getLiveApplicationDsl(ApplicationRecordService applicationRecordService) {
return applicationRecordService.getLatestRecordByApplicationId(this.getId())
.map(ApplicationRecord::getApplicationDSL)
.map(ApplicationVersion::getApplicationDSL)
.switchIfEmpty(Mono.just(editingApplicationDSL));
}

Expand Down Expand Up @@ -237,7 +237,7 @@ public Mono<Object> getLiveContainerSize(ApplicationRecordService applicationRec
}

public Mono<Map<String, Object>> getPublishedApplicationDSL(ApplicationRecordService applicationRecordService) {
return applicationRecordService.getLatestRecordByApplicationId(this.getId()).map(ApplicationRecord::getApplicationDSL);
return applicationRecordService.getLatestRecordByApplicationId(this.getId()).map(ApplicationVersion::getApplicationDSL);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
@SuperBuilder
@Jacksonized
@NoArgsConstructor
public class ApplicationRecord extends HasIdAndAuditing {
public class ApplicationVersion extends HasIdAndAuditing {

private String applicationId;
private String tag;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.lowcoder.domain.application.repository;


import org.lowcoder.domain.application.model.ApplicationRecord;
import org.lowcoder.domain.application.model.ApplicationVersion;
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
import org.springframework.stereotype.Repository;
import reactor.core.publisher.Flux;
Expand All @@ -10,14 +10,14 @@
import java.util.List;

@Repository
public interface ApplicationRecordRepository extends ReactiveMongoRepository<ApplicationRecord, String> {
public interface ApplicationRecordRepository extends ReactiveMongoRepository<ApplicationVersion, String> {

Mono<Long> deleteByApplicationId(String applicationId);

Flux<ApplicationRecord> findByApplicationId(String applicationId);
Flux<ApplicationVersion> findByApplicationId(String applicationId);

Flux<ApplicationRecord> findByApplicationIdIn(List<String> ids);
Flux<ApplicationVersion> findByApplicationIdIn(List<String> ids);

Mono<ApplicationRecord> findTop1ByApplicationIdOrderByCreatedAtDesc(String applicationId);
Mono<ApplicationVersion> findTop1ByApplicationIdOrderByCreatedAtDesc(String applicationId);

}
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package org.lowcoder.domain.application.service;

import org.lowcoder.domain.application.model.ApplicationRecord;
import org.lowcoder.domain.application.model.ApplicationVersion;
import reactor.core.publisher.Mono;

import java.util.List;
import java.util.Map;

public interface ApplicationRecordService {
Mono<ApplicationRecord> insert(ApplicationRecord applicationRecord);
Mono<ApplicationVersion> insert(ApplicationVersion applicationRecord);

Mono<List<ApplicationRecord>> getByApplicationId(String applicationId);
Mono<List<ApplicationVersion>> getByApplicationId(String applicationId);

Mono<Map<String, List<ApplicationRecord>>> getByApplicationIdIn(List<String> applicationIdList);
Mono<Map<String, List<ApplicationVersion>>> getByApplicationIdIn(List<String> applicationIdList);

Mono<ApplicationRecord> getById(String id);
Mono<ApplicationVersion> getById(String id);

Mono<ApplicationRecord> getLatestRecordByApplicationId(String applicationId);
Mono<ApplicationVersion> getLatestRecordByApplicationId(String applicationId);

Mono<Long> deleteAllApplicationTagByApplicationId(String applicationId);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.lowcoder.domain.application.service;

import lombok.RequiredArgsConstructor;
import org.lowcoder.domain.application.model.ApplicationRecord;
import org.lowcoder.domain.application.model.ApplicationVersion;
import org.lowcoder.domain.application.repository.ApplicationRecordRepository;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
Expand All @@ -21,31 +21,31 @@ public class ApplicationRecordServiceImpl implements ApplicationRecordService {
private final ApplicationRecordRepository applicationRecordRepository;

@Override
public Mono<ApplicationRecord> insert(ApplicationRecord applicationRecord) {
public Mono<ApplicationVersion> insert(ApplicationVersion applicationRecord) {
return applicationRecordRepository.save(applicationRecord);
}

/**
* get all published versions
*/
@Override
public Mono<List<ApplicationRecord>> getByApplicationId(String applicationId) {
public Mono<List<ApplicationVersion>> getByApplicationId(String applicationId) {
return applicationRecordRepository.findByApplicationId(applicationId)
.sort(Comparator.comparing(ApplicationRecord::getCreatedAt).reversed())
.sort(Comparator.comparing(ApplicationVersion::getCreatedAt).reversed())
.collectList();
}

@Override
public Mono<Map<String, List<ApplicationRecord>>> getByApplicationIdIn(List<String> applicationIdList) {
public Mono<Map<String, List<ApplicationVersion>>> getByApplicationIdIn(List<String> applicationIdList) {
return applicationRecordRepository.findByApplicationIdIn(applicationIdList)
.sort(Comparator.comparing(ApplicationRecord::getCreatedAt).reversed())
.sort(Comparator.comparing(ApplicationVersion::getCreatedAt).reversed())
.collectList()
.map(applicationRecords -> applicationRecords.stream()
.collect(Collectors.groupingBy(ApplicationRecord::getApplicationId)));
.collect(Collectors.groupingBy(ApplicationVersion::getApplicationId)));
}

@Override
public Mono<ApplicationRecord> getById(String id) {
public Mono<ApplicationVersion> getById(String id) {
return applicationRecordRepository.findById(id)
.switchIfEmpty(deferredError(APPLICATION_NOT_FOUND, "APPLICATION_NOT_FOUND"));
}
Expand All @@ -54,7 +54,7 @@ public Mono<ApplicationRecord> getById(String id) {
* get the latest published version
*/
@Override
public Mono<ApplicationRecord> getLatestRecordByApplicationId(String applicationId) {
public Mono<ApplicationVersion> getLatestRecordByApplicationId(String applicationId) {
return applicationRecordRepository.findTop1ByApplicationIdOrderByCreatedAtDesc(applicationId);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.lowcoder.domain.application.model.Application;
import org.lowcoder.domain.application.model.ApplicationRecord;
import org.lowcoder.domain.application.model.ApplicationVersion;
import org.lowcoder.domain.application.model.ApplicationRequestType;
import org.lowcoder.domain.application.model.ApplicationStatus;
import org.lowcoder.domain.application.repository.ApplicationRepository;
Expand Down Expand Up @@ -347,7 +347,7 @@ public Mono<Boolean> updateLastEditedAt(String applicationId, Instant time, Stri
@Override
public Mono<Map<String, Object>> getLiveDSLByApplicationId(String applicationId) {
return applicationRecordService.getLatestRecordByApplicationId(applicationId)
.map(ApplicationRecord::getApplicationDSL)
.map(ApplicationVersion::getApplicationDSL)
.switchIfEmpty(findById(applicationId)
.map(Application::getEditingApplicationDSL));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ public Mono<ApplicationView> publish(String applicationId, ApplicationPublishReq
.flatMap(userId -> resourcePermissionService.checkAndReturnMaxPermission(userId,
applicationId, PUBLISH_APPLICATIONS))
.delayUntil(__ -> applicationService.findById(applicationId)
.map(application -> ApplicationRecord.builder()
.map(application -> ApplicationVersion.builder()
.tag(applicationPublishRequest.tag())
.commitMessage(applicationPublishRequest.commitMessage())
.applicationId(application.getId())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@

import lombok.RequiredArgsConstructor;
import org.lowcoder.api.home.SessionUserService;
import org.lowcoder.api.application.ApplicationApiServiceImpl;
import org.lowcoder.api.application.view.ApplicationRecordMetaView;
import org.lowcoder.api.usermanagement.OrgDevChecker;
import org.lowcoder.domain.application.model.ApplicationVersion;
import org.lowcoder.domain.organization.model.OrgMember;
import org.lowcoder.domain.application.model.Application;
import org.lowcoder.domain.application.model.ApplicationCombineId;
import org.lowcoder.domain.application.model.ApplicationRecord;
import org.lowcoder.domain.application.service.ApplicationRecordService;
import org.lowcoder.domain.application.service.ApplicationService;
import org.lowcoder.domain.user.service.UserService;
Expand Down Expand Up @@ -41,7 +40,7 @@ public Mono<Map<String, Object>> getRecordDSLFromApplicationCombineId(Applicatio
return applicationService.getLiveDSLByApplicationId(applicationCombineId.applicationId());
}
return applicationRecordService.getById(applicationCombineId.applicationRecordId())
.map(ApplicationRecord::getApplicationDSL);
.map(ApplicationVersion::getApplicationDSL);
}));
}

Expand All @@ -55,7 +54,7 @@ public Mono<Void> delete(String id) {
public Mono<List<ApplicationRecordMetaView>> getByApplicationId(String applicationId) {
return applicationRecordService.getByApplicationId(applicationId)
.flatMap(applicationRecords -> multiBuild(applicationRecords,
ApplicationRecord::getCreatedBy,
ApplicationVersion::getCreatedBy,
userService::getByIds,
ApplicationRecordMetaView::from
));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package org.lowcoder.api.application.view;

import org.lowcoder.domain.application.model.ApplicationRecord;
import org.lowcoder.domain.application.model.ApplicationVersion;
import org.lowcoder.domain.user.model.User;

public record ApplicationRecordMetaView(String id,
Expand All @@ -10,7 +10,7 @@ public record ApplicationRecordMetaView(String id,
long createTime,
String creatorName) {

public static ApplicationRecordMetaView from(ApplicationRecord applicationRecord) {
public static ApplicationRecordMetaView from(ApplicationVersion applicationRecord) {
return new ApplicationRecordMetaView(applicationRecord.getId(),
applicationRecord.getApplicationId(),
applicationRecord.getTag(),
Expand All @@ -19,7 +19,7 @@ public static ApplicationRecordMetaView from(ApplicationRecord applicationRecord
null);
}

public static ApplicationRecordMetaView from(ApplicationRecord applicationRecord, User applicationRecordCreator) {
public static ApplicationRecordMetaView from(ApplicationVersion applicationRecord, User applicationRecordCreator) {
return new ApplicationRecordMetaView(applicationRecord.getId(),
applicationRecord.getApplicationId(),
applicationRecord.getTag(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.lowcoder.api.application.view.ApplicationInfoView;
import org.lowcoder.api.application.view.ApplicationInfoView.ApplicationInfoViewBuilder;
import org.lowcoder.api.application.view.MarketplaceApplicationInfoView;
import org.lowcoder.api.bundle.view.BundleInfoView;
import org.lowcoder.api.bundle.view.MarketplaceBundleInfoView;
import org.lowcoder.api.usermanagement.OrgDevChecker;
import org.lowcoder.api.usermanagement.view.OrgAndVisitorRoleView;
import org.lowcoder.api.usermanagement.view.UserProfileView;
import org.lowcoder.domain.application.model.Application;
import org.lowcoder.domain.application.model.ApplicationRecord;
import org.lowcoder.domain.application.model.ApplicationVersion;
import org.lowcoder.domain.application.model.ApplicationStatus;
import org.lowcoder.domain.application.model.ApplicationType;
import org.lowcoder.domain.application.service.ApplicationRecordService;
Expand All @@ -38,7 +37,6 @@
import org.lowcoder.infra.util.NetworkUtils;
import org.lowcoder.infra.util.TupleUtils;
import org.lowcoder.sdk.config.CommonConfig;
import org.lowcoder.sdk.models.VersionedModel;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Flux;
Expand Down Expand Up @@ -574,7 +572,7 @@ private Mono<ApplicationInfoView> buildView(Application application, ResourceRol
.zipWith(application.getIcon(applicationRecordService), TupleUtils::merge)
.zipWith(applicationRecordService.getLatestRecordByApplicationId(application.getId()).map(Optional::of).switchIfEmpty(Mono.just(Optional.empty())), TupleUtils::merge)
.flatMap(tuple -> {
Optional<ApplicationRecord> lastAppRecord = tuple.getT5();
Optional<ApplicationVersion> lastAppRecord = tuple.getT5();
ApplicationInfoView.ApplicationInfoViewBuilder applicationInfoViewBuilder = ApplicationInfoView.builder()
.applicationId(application.getId())
.applicationGid(application.getGid())
Expand All @@ -585,8 +583,8 @@ private Mono<ApplicationInfoView> buildView(Application application, ResourceRol
.category(tuple.getT3())
.icon(tuple.getT4())
.published(lastAppRecord.isPresent())
.publishedVersion(lastAppRecord.map(ApplicationRecord::version).orElse(null))
.lastPublishedTime(lastAppRecord.map(ApplicationRecord::getCreatedAt).orElse(null))
.publishedVersion(lastAppRecord.map(ApplicationVersion::version).orElse(null))
.lastPublishedTime(lastAppRecord.map(ApplicationVersion::getCreatedAt).orElse(null))
.createBy(Optional.ofNullable(userMap.get(application.getCreatedBy()))
.map(User::getName)
.orElse(""))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,18 @@
import com.github.cloudyrock.mongock.ChangeSet;
import com.github.cloudyrock.mongock.driver.mongodb.springdata.v4.decorator.impl.MongockTemplate;
import com.github.f4b6a3.uuid.UuidCreator;
import com.mongodb.MongoNamespace;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.result.DeleteResult;
import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.bson.types.ObjectId;
import org.lowcoder.domain.application.model.Application;
import org.lowcoder.domain.application.model.ApplicationHistorySnapshot;
import org.lowcoder.domain.application.model.ApplicationHistorySnapshotTS;
import org.lowcoder.domain.application.model.ApplicationRecord;
import org.lowcoder.domain.application.model.ApplicationVersion;
import org.lowcoder.domain.bundle.model.Bundle;
import org.lowcoder.domain.datasource.model.Datasource;
import org.lowcoder.domain.datasource.model.DatasourceStructureDO;
Expand Down Expand Up @@ -438,7 +440,7 @@ public void publishedToRecord(MongockTemplate mongoTemplate, CommonConfig common
ObjectId id = document.getObjectId("_id");
String createdBy = document.getString("createdBy");
Map<String, Object> dslMap = documentToMap(dsl);
ApplicationRecord record = ApplicationRecord.builder()
ApplicationVersion record = ApplicationVersion.builder()
.applicationId(id.toHexString())
.applicationDSL(dslMap)
.commitMessage("")
Expand All @@ -453,7 +455,28 @@ public void publishedToRecord(MongockTemplate mongoTemplate, CommonConfig common
}
@ChangeSet(order = "029", id = "add-tag-index-to-record", author = "Thomas")
public void addTagIndexToRecord(MongockTemplate mongoTemplate, CommonConfig commonConfig) {
ensureIndexes(mongoTemplate, ApplicationRecord.class, makeIndex("applicationId", "tag").unique());
ensureIndexes(mongoTemplate, ApplicationVersion.class, makeIndex("applicationId", "tag").unique());
}

@ChangeSet(order = "030", id = "rename-application-record-collection", author = "Thomas")
public void renameApplicationRecordCollection(MongockTemplate mongoTemplate, MongoDatabase mongoDatabase) {
String oldCollectionName = "applicationRecord";
String newCollectionName = "applicationVersion";

// Check if the old collection exists
boolean collectionExists = mongoDatabase.listCollectionNames()
.into(new java.util.ArrayList<>())
.contains(oldCollectionName);

if (collectionExists) {
// Rename the collection
mongoDatabase.getCollection(oldCollectionName)
.renameCollection(new MongoNamespace(mongoDatabase.getName(), newCollectionName));
System.out.println("Collection renamed from " + oldCollectionName + " to " + newCollectionName);
} else {
System.out.println("Collection " + oldCollectionName + " does not exist, skipping rename.");
}

}

private void addGidField(MongockTemplate mongoTemplate, String collectionName) {
Expand Down
Loading