dossier information endpoint
This commit is contained in:
parent
2a1d89fa35
commit
243db42b0f
@ -0,0 +1,12 @@
|
|||||||
|
package com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DossierInformation {
|
||||||
|
|
||||||
|
private int numberOfActiveDossiers;
|
||||||
|
private int numberOfSoftDeletedDossiers;
|
||||||
|
private int numberOfHardDeletedDossiers;
|
||||||
|
|
||||||
|
}
|
||||||
@ -3,6 +3,7 @@ package com.iqser.red.service.persistence.service.v1.api.resources;
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierInformation;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -15,6 +16,7 @@ import java.util.Set;
|
|||||||
public interface DossierResource {
|
public interface DossierResource {
|
||||||
|
|
||||||
String REST_PATH = "/dossier";
|
String REST_PATH = "/dossier";
|
||||||
|
String INFO_PATH = "/info";
|
||||||
String DELETED_DOSSIERS_PATH = "/deletedDossiers";
|
String DELETED_DOSSIERS_PATH = "/deletedDossiers";
|
||||||
String HARD_DELETE_PATH = "/hardDelete";
|
String HARD_DELETE_PATH = "/hardDelete";
|
||||||
String UNDELETE_PATH = "/undelete";
|
String UNDELETE_PATH = "/undelete";
|
||||||
@ -28,7 +30,7 @@ public interface DossierResource {
|
|||||||
|
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@ResponseStatus(value = HttpStatus.OK)
|
@ResponseStatus(value = HttpStatus.OK)
|
||||||
@PostMapping(value = REST_PATH+CHANGES_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = REST_PATH + CHANGES_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
JSONPrimitive<Boolean> hasChangesSince(@RequestBody JSONPrimitive<OffsetDateTime> since);
|
JSONPrimitive<Boolean> hasChangesSince(@RequestBody JSONPrimitive<OffsetDateTime> since);
|
||||||
|
|
||||||
@PostMapping(value = REST_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = REST_PATH, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@ -43,6 +45,9 @@ public interface DossierResource {
|
|||||||
@GetMapping(value = REST_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = REST_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
List<Dossier> getAllDossiers();
|
List<Dossier> getAllDossiers();
|
||||||
|
|
||||||
|
@GetMapping(value = REST_PATH + INFO_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
DossierInformation getDossierInformation();
|
||||||
|
|
||||||
@GetMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = REST_PATH + DOSSIER_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
Dossier getDossierById(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
Dossier getDossierById(@PathVariable(DOSSIER_ID_PARAM) String dossierId,
|
||||||
@RequestParam(name = INCLUDE_DELETED_PARAM, defaultValue = "false", required = false) boolean includeDeleted);
|
@RequestParam(name = INCLUDE_DELETED_PARAM, defaultValue = "false", required = false) boolean includeDeleted);
|
||||||
|
|||||||
@ -1,20 +1,5 @@
|
|||||||
package com.iqser.red.service.peristence.v1.server.controller;
|
package com.iqser.red.service.peristence.v1.server.controller;
|
||||||
|
|
||||||
import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE;
|
|
||||||
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
|
||||||
|
|
||||||
import java.time.OffsetDateTime;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import javax.transaction.Transactional;
|
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import com.iqser.red.service.peristence.v1.server.service.DossierService;
|
import com.iqser.red.service.peristence.v1.server.service.DossierService;
|
||||||
import com.iqser.red.service.peristence.v1.server.service.FileService;
|
import com.iqser.red.service.peristence.v1.server.service.FileService;
|
||||||
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
|
import com.iqser.red.service.peristence.v1.server.service.FileStatusService;
|
||||||
@ -25,11 +10,24 @@ import com.iqser.red.service.persistence.management.v1.processor.exception.Dossi
|
|||||||
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
import com.iqser.red.service.persistence.service.v1.api.model.common.JSONPrimitive;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
|
||||||
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierInformation;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatus;
|
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatus;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.resources.DossierResource;
|
import com.iqser.red.service.persistence.service.v1.api.resources.DossierResource;
|
||||||
|
|
||||||
import feign.Param;
|
import feign.Param;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
import java.time.OffsetDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static com.iqser.red.service.persistence.management.v1.processor.exception.DossierNotFoundException.DOSSIER_NOT_FOUND_MESSAGE;
|
||||||
|
import static com.iqser.red.service.persistence.management.v1.processor.utils.MagicConverter.convert;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -94,6 +92,23 @@ public class DossierController implements DossierResource {
|
|||||||
.collect(Collectors.toList()), Dossier.class, new DossierMapper());
|
.collect(Collectors.toList()), Dossier.class, new DossierMapper());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public DossierInformation getDossierInformation() {
|
||||||
|
|
||||||
|
DossierInformation dossierInformation = new DossierInformation();
|
||||||
|
dossierService.getAllDossiers().forEach(d -> {
|
||||||
|
if (d.getHardDeletedTime() != null) {
|
||||||
|
dossierInformation.setNumberOfHardDeletedDossiers(dossierInformation.getNumberOfHardDeletedDossiers() + 1);
|
||||||
|
} else if (d.getSoftDeletedTime() != null) {
|
||||||
|
dossierInformation.setNumberOfSoftDeletedDossiers(dossierInformation.getNumberOfSoftDeletedDossiers() + 1);
|
||||||
|
} else {
|
||||||
|
dossierInformation.setNumberOfActiveDossiers(dossierInformation.getNumberOfActiveDossiers() + 1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return dossierInformation;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|||||||
@ -74,6 +74,12 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
|
|||||||
assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty();
|
assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty();
|
||||||
|
|
||||||
assertThatThrownBy(() -> dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()))).isInstanceOf(FeignException.class);
|
assertThatThrownBy(() -> dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()))).isInstanceOf(FeignException.class);
|
||||||
|
|
||||||
|
|
||||||
|
var dossierInformation = dossierClient.getDossierInformation();
|
||||||
|
assertThat(dossierInformation.getNumberOfActiveDossiers()).isEqualTo(0);
|
||||||
|
assertThat(dossierInformation.getNumberOfSoftDeletedDossiers()).isEqualTo(0);
|
||||||
|
assertThat(dossierInformation.getNumberOfHardDeletedDossiers()).isEqualTo(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user