Skip to content
Prev Previous commit
Next Next commit
Add migration to fix existing application public view bug
  • Loading branch information
aq-ikhwa-tech authored and ludomikula committed Feb 28, 2024
commit 2dea08b12a2ec40189532519600e379605c785aa
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import java.util.Set;
import java.util.function.Supplier;

import lombok.Setter;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.lowcoder.domain.query.model.ApplicationQuery;
Expand All @@ -38,10 +39,13 @@ public class Application extends HasIdAndAuditing {

private final Map<String, Object> publishedApplicationDSL;

private final Boolean publicToAll;
private final Boolean publicToMarketplace;
@Setter
private Boolean publicToAll;
@Setter
private Boolean publicToMarketplace;

private final Boolean agencyProfile;
@Setter
private Boolean agencyProfile;

private Map<String, Object> editingApplicationDSL;

Expand Down Expand Up @@ -161,4 +165,5 @@ public Map<String, Object> getEditingApplicationDSL() {
public Object getLiveContainerSize() {
return liveContainerSize.get();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ public Mono<Boolean> updateById(String applicationId, Application application) {
return Mono.error(new BizException(BizError.INVALID_PARAMETER, "INVALID_PARAMETER", FieldName.ID));
}

log.info("inside mongoUpsertHelper ");

log.info("application: " + application);

return mongoUpsertHelper.updateById(application, applicationId);
}

Expand Down Expand Up @@ -220,4 +224,8 @@ public Mono<Set<String>> getPublicApplicationIds(Collection<String> applicationI


}

public Flux<Application> findAll() {
return repository.findAll();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.lowcoder.infra.config.model.ServerConfig;
import org.lowcoder.infra.eventlog.EventLog;
import org.lowcoder.infra.serverlog.ServerLog;
import org.lowcoder.runner.migrations.job.AddPtmFieldsJob;
import org.lowcoder.runner.migrations.job.CompleteAuthType;
import org.lowcoder.runner.migrations.job.MigrateAuthConfigJob;
import org.springframework.data.domain.Sort;
Expand Down Expand Up @@ -182,6 +183,11 @@ public void addOrgIdIndexOnServerLog(MongockTemplate mongoTemplate) {
);
}

@ChangeSet(order = "020", id = "add-ptm-fields-to-applications", author = "")
public void addPtmFieldsToApplicatgions(AddPtmFieldsJob addPtmFieldsJob) {
addPtmFieldsJob.migrateApplicationsToInitPtmFields();
}

public static Index makeIndex(String... fields) {
if (fields.length == 1) {
return new Index(fields[0], Sort.Direction.ASC).named(fields[0]);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.lowcoder.runner.migrations.job;

public interface AddPtmFieldsJob {

void migrateApplicationsToInitPtmFields();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package org.lowcoder.runner.migrations.job;

import org.lowcoder.domain.application.service.ApplicationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class AddPtmFieldsJobImpl implements AddPtmFieldsJob {

@Autowired
private ApplicationService applicationService;

@Override
public void migrateApplicationsToInitPtmFields() {
applicationService.findAll()
.doOnNext(application -> {
if(!application.isPublicToAll()) {
application.setPublicToAll(Boolean.FALSE);
}
if(!application.isPublicToMarketplace()) {
application.setPublicToMarketplace(Boolean.FALSE);
}
if(!application.agencyProfile()) {
application.setAgencyProfile(Boolean.FALSE);
}
}).flatMap(application -> applicationService.updateById(application.getId(), application))
.blockLast();
}
}