Skip to content

Commit

Permalink
SHIBUI-645: handle default position order when persisting new metadat…
Browse files Browse the repository at this point in the history
…a resolvers
  • Loading branch information
dima767 committed Jul 27, 2018
1 parent bbbf4ca commit a55b424
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ public ResponseEntity<?> create(@RequestBody MetadataResolver newResolver) {

newResolver.convertFiltersFromTransientRepresentationIfNecessary();
MetadataResolver persistedResolver = resolverRepository.save(newResolver);
positionOrderContainerService.appendPositionOrderForNew(persistedResolver);
persistedResolver.updateVersion();

persistedResolver.convertFiltersIntoTransientRepresentationIfNecessary();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,14 @@ public MetadataResolversPositionOrderContainer retrieveExistingOrEmpty() {
return getPositionOrderContainerIfExists().orElseGet(MetadataResolversPositionOrderContainer::new);
}

@Override
@Transactional
public void appendPositionOrderForNew(MetadataResolver metadataResolver) {
MetadataResolversPositionOrderContainer positionOrderContainer = retrieveExistingOrEmpty();
positionOrderContainer.getResourceIds().add(metadataResolver.getResourceId());
positionOrderContainerRepository.save(positionOrderContainer);
}

private Optional<MetadataResolversPositionOrderContainer> getPositionOrderContainerIfExists() {
Iterator<MetadataResolversPositionOrderContainer> iter = positionOrderContainerRepository.findAll().iterator();
return iter.hasNext() ? Optional.of(iter.next()) : Optional.empty();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,6 @@ public interface MetadataResolversPositionOrderContainerService {
void addOrUpdatePositionOrderContainer(MetadataResolversPositionOrderContainer metadataResolversPositionOrderContainer);

List<MetadataResolver> getAllMetadataResolversInDefinedOrderOrUnordered();

void appendPositionOrderForNew(MetadataResolver metadataResolver);
}

0 comments on commit a55b424

Please sign in to comment.