Skip to content

Commit

Permalink
Feature: VSDSPUB-349: Add Gone status to soft deleted fragments
Browse files Browse the repository at this point in the history
  • Loading branch information
WLefever-Cegeka committed Nov 14, 2022
1 parent d690a8c commit 9a48041
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package be.vlaanderen.informatievlaanderen.ldes.server.domain.exceptions;

public class DeletedFragmentException extends RuntimeException {
private final String fragmentId;

public DeletedFragmentException(String fragmentId) {
super();
this.fragmentId = fragmentId;
}

@Override
public String getMessage() {
return "Fragment with following identifier has been deleted: " + fragmentId;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,8 @@ public LdesFragment createChild(FragmentPair fragmentPair) {
public void removeRelation(TreeRelation treeRelation) {
relations.remove(treeRelation);
}

public boolean isSoftDeleted() {
return this.getFragmentInfo().getSoftDeleted();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services;

import be.vlaanderen.informatievlaanderen.ldes.server.domain.config.LdesConfig;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.exceptions.DeletedFragmentException;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.exceptions.MissingFragmentException;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.entities.LdesFragment;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.repository.LdesFragmentRepository;
Expand All @@ -22,12 +23,16 @@ public FragmentFetchServiceImpl(LdesConfig ldesConfig,

@Override
public LdesFragment getFragment(LdesFragmentRequest ldesFragmentRequest) {
return ldesFragmentRepository
LdesFragment ldesFragment = ldesFragmentRepository
.retrieveFragment(ldesFragmentRequest)
.orElseThrow(
() -> new MissingFragmentException(

ldesConfig.getHostName() + new FragmentInfo(ldesFragmentRequest.viewName(),
ldesFragmentRequest.fragmentPairs()).generateFragmentId()));
if (ldesFragment.isSoftDeleted())
throw new DeletedFragmentException(
ldesConfig.getHostName() + new FragmentInfo(ldesFragmentRequest.viewName(),
ldesFragmentRequest.fragmentPairs()).generateFragmentId());
return ldesFragment;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package be.vlaanderen.informatievlaanderen.ldes.server.rest.exceptionhandling;

import be.vlaanderen.informatievlaanderen.ldes.server.domain.exceptions.DeletedFragmentException;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.exceptions.MissingFragmentException;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.exceptions.RdfFormatException;
import org.springframework.http.HttpHeaders;
Expand All @@ -22,6 +23,14 @@ protected ResponseEntity<Object> handleMissingFragmentException(
new HttpHeaders(), HttpStatus.NOT_FOUND, request);
}

@ExceptionHandler(value = { DeletedFragmentException.class })
protected ResponseEntity<Object> handleDeletedFragmentException(
RuntimeException ex, WebRequest request) {
String bodyOfResponse = ex.getMessage();
return handleExceptionInternal(ex, bodyOfResponse,
new HttpHeaders(), HttpStatus.GONE, request);
}

@ExceptionHandler(value = { RdfFormatException.class })
protected ResponseEntity<Object> handleRdfFormatException(
RuntimeException ex, WebRequest request) {
Expand Down

0 comments on commit 9a48041

Please sign in to comment.