Skip to content

Commit

Permalink
chore: Optimise archive application flow
Browse files Browse the repository at this point in the history
  • Loading branch information
abhvsn committed Apr 26, 2024
1 parent c740c9a commit 4bafdb7
Show file tree
Hide file tree
Showing 9 changed files with 38 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ Flux<ActionCollectionDTO> getCollectionsByPageIdAndViewMode(
Mono<ActionCollection> findByBranchNameAndDefaultCollectionId(
String branchName, String defaultCollectionId, AclPermission permission);

Mono<List<ActionCollection>> archiveActionCollectionByApplicationId(String applicationId, AclPermission permission);
Mono<Boolean> archiveActionCollectionByApplicationId(String applicationId, AclPermission permission);

void populateDefaultResources(
ActionCollection actionCollection, ActionCollection branchedActionCollection, String branchName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -478,13 +478,11 @@ public Mono<ActionCollectionDTO> findActionCollectionDTObyIdAndViewMode(
}

@Override
public Mono<List<ActionCollection>> archiveActionCollectionByApplicationId(
String applicationId, AclPermission permission) {
public Mono<Boolean> archiveActionCollectionByApplicationId(String applicationId, AclPermission permission) {
return repository
.findByApplicationId(applicationId, permission, null)
.flatMap(actionCollection -> {
Set<String> actionIds = new HashSet<>();
actionIds.addAll(actionCollection
Set<String> actionIds = new HashSet<>(actionCollection
.getUnpublishedCollection()
.getDefaultToBranchedActionIdsMap()
.values());
Expand All @@ -496,15 +494,16 @@ public Mono<List<ActionCollection>> archiveActionCollectionByApplicationId(
.getDefaultToBranchedActionIdsMap()
.values());
}
return Flux.fromIterable(actionIds)
.flatMap(newActionService::archiveById)
return newActionService
.archiveByIds(actionIds)
.onErrorResume(throwable -> {
log.error(throwable.getMessage());
return Mono.empty();
})
.then(repository.archive(actionCollection));
.thenReturn(actionCollection.getId());
})
.collectList();
.collectList()
.flatMap(repository::archiveAllById);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import reactor.core.publisher.Mono;
import reactor.util.function.Tuple2;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Optional;
Expand Down Expand Up @@ -108,7 +109,9 @@ Flux<ActionDTO> getUnpublishedActions(

Mono<NewAction> archiveById(String id);

Mono<List<NewAction>> archiveActionsByApplicationId(String applicationId, AclPermission permission);
Mono<Boolean> archiveByIds(Collection<String> idList);

Mono<Boolean> archiveActionsByApplicationId(String applicationId, AclPermission permission);

List<MustacheBindingToken> extractMustacheKeysInOrder(String query);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@

import java.time.Instant;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
Expand Down Expand Up @@ -1482,6 +1483,14 @@ public Mono<NewAction> archiveById(String id) {
.thenReturn(toDelete));
}

@Override
public Mono<Boolean> archiveByIds(Collection<String> idList) {
if (idList == null || idList.isEmpty()) {
return Mono.just(true);
}
return repository.archiveAllById(idList);
}

@Override
public Mono<NewAction> archiveByIdAndBranchName(String id, String branchName) {
Mono<NewAction> branchedActionMono =
Expand All @@ -1498,15 +1507,16 @@ public Mono<NewAction> archive(NewAction newAction) {
}

@Override
public Mono<List<NewAction>> archiveActionsByApplicationId(String applicationId, AclPermission permission) {
public Mono<Boolean> archiveActionsByApplicationId(String applicationId, AclPermission permission) {
return repository
.findByApplicationId(applicationId, permission)
.flatMap(repository::archive)
.map(NewAction::getId)
.collectList()
.flatMap(repository::archiveAllById)
.onErrorResume(throwable -> {
log.error(throwable.getMessage());
return Mono.empty();
})
.collectList();
return Mono.just(false);
});
}

public List<MustacheBindingToken> extractMustacheKeysInOrder(String query) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Mono<ApplicationPagesDTO> findApplicationPagesByApplicationIdViewMode(
Mono<PageDTO> findByNameAndApplicationIdAndViewMode(
String name, String applicationId, AclPermission permission, Boolean view);

Mono<List<NewPage>> archivePagesByApplicationId(String applicationId, AclPermission permission);
Mono<Boolean> archivePagesByApplicationId(String applicationId, AclPermission permission);

Mono<List<String>> findAllPageIdsInApplication(String applicationId, AclPermission permission, Boolean view);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -472,10 +472,11 @@ public Flux<NewPage> findNewPagesByApplicationId(String applicationId, AclPermis
}

@Override
public Mono<List<NewPage>> archivePagesByApplicationId(String applicationId, AclPermission permission) {
public Mono<Boolean> archivePagesByApplicationId(String applicationId, AclPermission permission) {
return findNewPagesByApplicationId(applicationId, permission)
.flatMap(repository::archive)
.collectList();
.map(NewPage::getId)
.collectList()
.flatMap(repository::archiveAllById);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -579,12 +579,12 @@ public Mono<Application> deleteApplicationByResource(Application application) {
protected Mono<Application> deleteApplicationResources(Application application) {
return actionCollectionService
.archiveActionCollectionByApplicationId(application.getId(), actionPermission.getDeletePermission())
.then(newActionService.archiveActionsByApplicationId(
application.getId(), actionPermission.getDeletePermission()))
.then(Mono.defer(() -> newActionService.archiveActionsByApplicationId(
application.getId(), actionPermission.getDeletePermission())))
.then(newPageService.archivePagesByApplicationId(
application.getId(), pagePermission.getDeletePermission()))
.then(themeService.archiveApplicationThemes(application))
.flatMap(applicationService::archive);
.then(applicationService.archive(application));
}

protected Mono<Application> sendAppDeleteAnalytics(Application deletedApplication) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,5 @@ public interface ThemeServiceCE extends CrudService<Theme, String> {

Mono<Theme> getOrSaveTheme(Theme theme, Application destApplication);

Mono<Application> archiveApplicationThemes(Application application);
Mono<Boolean> archiveApplicationThemes(Application application);
}
Original file line number Diff line number Diff line change
Expand Up @@ -469,11 +469,10 @@ public Mono<Theme> getOrSaveTheme(Theme theme, Application destApplication) {
* @return Provided Application publisher
*/
@Override
public Mono<Application> archiveApplicationThemes(Application application) {
public Mono<Boolean> archiveApplicationThemes(Application application) {
return repository
.archiveByApplicationId(application.getId())
.then(repository.archiveDraftThemesById(
application.getEditModeThemeId(), application.getPublishedModeThemeId()))
.thenReturn(application);
application.getEditModeThemeId(), application.getPublishedModeThemeId()));
}
}

0 comments on commit 4bafdb7

Please sign in to comment.