Removing the logic to bind actions to pages when a dynamic binding happens.

This is because when an action is created, it is already bound to that page. This assumption will not change. Also, adding the pageId when searching for an action because the action name and pageId is a unique index. There may be actions with similar names across multiple pages.
This commit is contained in:
Arpit Mohan 2019-12-19 12:35:43 +05:30
parent 7f9e0b71da
commit 738b693d9a
4 changed files with 5 additions and 11 deletions

View File

@ -15,7 +15,7 @@ public interface ActionRepository extends BaseRepository<Action, String> {
Mono<Action> findByName(String name);
Flux<Action> findDistinctActionsByNameIn(Set<String> names);
Flux<Action> findDistinctActionsByNameInAndPageId(Set<String> names, String pageId);
Flux<Action> saveAll(List<Action> actions);

View File

@ -17,7 +17,7 @@ public interface ActionService extends CrudService<Action, String> {
Mono<Action> findByName(String name);
Flux<Action> findDistinctActionsByNameIn(Set<String> names);
Flux<Action> findDistinctActionsByNameInAndPageId(Set<String> names, String pageId);
Flux<Action> saveAll(List<Action> actions);
}

View File

@ -382,8 +382,8 @@ public class ActionServiceImpl extends BaseService<ActionRepository, Action, Str
}
@Override
public Flux<Action> findDistinctActionsByNameIn(Set<String> names) {
return repository.findDistinctActionsByNameIn(names);
public Flux<Action> findDistinctActionsByNameInAndPageId(Set<String> names, String pageId) {
return repository.findDistinctActionsByNameInAndPageId(names, pageId);
}
@Override

View File

@ -266,13 +266,7 @@ public class LayoutServiceImpl implements LayoutService {
Flux<Action> updatePageIdsForActionsAndReturnDslActions(Set<String> nodes, String pageId) {
return actionService
.findDistinctActionsByNameIn(nodes)
.map(action -> {
action.setPageId(pageId);
return action;
})
.collectList()
.flatMapMany(actionService::saveAll);
.findDistinctActionsByNameInAndPageId(nodes, pageId);
}
}