This commit is contained in:
Michael Hoennig 2024-04-17 08:32:10 +02:00
parent 953acb14cc
commit 7c1ebe697c
3 changed files with 15 additions and 10 deletions

View File

@ -3,6 +3,9 @@ package net.hostsharing.hsadminng.hs.hosting.managedserver;
import net.hostsharing.hsadminng.hs.hosting.generated.api.v1.api.HsHostingManagedserversApi;
import net.hostsharing.hsadminng.context.Context;
import net.hostsharing.hsadminng.hs.hosting.generated.api.v1.model.HsManagedServerInsertResource;
import net.hostsharing.hsadminng.hs.hosting.generated.api.v1.model.HsManagedServerPatchResource;
import net.hostsharing.hsadminng.hs.hosting.generated.api.v1.model.HsManagedServerResource;
import net.hostsharing.hsadminng.mapper.KeyValueMap;
import net.hostsharing.hsadminng.mapper.Mapper;
import org.springframework.beans.factory.annotation.Autowired;
@ -31,7 +34,7 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
@Override
@Transactional(readOnly = true)
public ResponseEntity<List<HsManagedServerConfig>> listManagedServersByDebitorUuid(
public ResponseEntity<List<HsManagedServerResource>> listManagedServersByDebitorUuid(
final String currentUser,
final String assumedRoles,
final UUID debitorUuid) {
@ -43,6 +46,7 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
return ResponseEntity.ok(resources);
}
@Override
@Transactional
public ResponseEntity<HsManagedServerResource> addManagedServer(
@ -52,7 +56,7 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
context.define(currentUser, assumedRoles);
final var entityToSave = mapper.map(body, net.hostsharing.hsadminng.hs.booking.item.HsManagedServerEntity.class, RESOURCE_TO_ENTITY_POSTMAPPER);
final var entityToSave = mapper.map(body, HsManagedServerEntity.class, RESOURCE_TO_ENTITY_POSTMAPPER);
final var saved = managedServerRepo.save(entityToSave);
@ -83,7 +87,7 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
@Override
@Transactional
public ResponseEntity<Void> deleteBookingIemByUuid(
public ResponseEntity<Void> deleteManagedServerUuid(
final String currentUser,
final String assumedRoles,
final UUID managedServerUuid) {
@ -107,14 +111,14 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
final var current = managedServerRepo.findByUuid(managedServerUuid).orElseThrow();
new net.hostsharing.hsadminng.hs.booking.item.HsManagedServerEntityPatcher(current).apply(body);
new HsManagedServerEntityPatcher(current).apply(body);
final var saved = managedServerRepo.save(current);
final var mapped = mapper.map(saved, HsManagedServerResource.class, ENTITY_TO_RESOURCE_POSTMAPPER);
return ResponseEntity.ok(mapped);
}
final BiConsumer<net.hostsharing.hsadminng.hs.booking.item.HsManagedServerEntity, HsManagedServerResource> ENTITY_TO_RESOURCE_POSTMAPPER = (entity, resource) -> {
final BiConsumer<HsManagedServerEntity, HsManagedServerResource> ENTITY_TO_RESOURCE_POSTMAPPER = (entity, resource) -> {
resource.setValidFrom(entity.getValidity().lower());
if (entity.getValidity().hasUpperBound()) {
resource.setValidTo(entity.getValidity().upper().minusDays(1));
@ -122,8 +126,8 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
};
@SuppressWarnings("unchecked")
final BiConsumer<HsManagedServerInsertResource, net.hostsharing.hsadminng.hs.booking.item.HsManagedServerEntity> RESOURCE_TO_ENTITY_POSTMAPPER = (resource, entity) -> {
final BiConsumer<HsManagedServerInsertResource, HsManagedServerEntity> RESOURCE_TO_ENTITY_POSTMAPPER = (resource, entity) -> {
entity.setValidity(toPostgresDateRange(resource.getValidFrom(), resource.getValidTo()));
entity.putResources(KeyValueMap.from(resource.getResources()));
entity.putResources(KeyValueMap.from(resource.getConfig()));
};
}

View File

@ -1,5 +1,6 @@
package net.hostsharing.hsadminng.hs.hosting.managedserver;
import net.hostsharing.hsadminng.hs.hosting.generated.api.v1.model.HsManagedServerPatchResource;
import net.hostsharing.hsadminng.mapper.EntityPatcher;
import net.hostsharing.hsadminng.mapper.KeyValueMap;
import net.hostsharing.hsadminng.mapper.OptionalFromJson;
@ -19,8 +20,8 @@ public class HsManagedServerEntityPatcher implements EntityPatcher<HsManagedServ
public void apply(final HsManagedServerPatchResource resource) {
OptionalFromJson.of(resource.getCaption())
.ifPresent(entity::setCaption);
Optional.ofNullable(resource.getResources())
.ifPresent(r -> entity.getResources().patch(KeyValueMap.from(resource.getResources())));
Optional.ofNullable(resource.getConfig())
.ifPresent(r -> entity.getResources().patch(KeyValueMap.from(resource.getConfig())));
OptionalFromJson.of(resource.getValidTo())
.ifPresent(entity::setValidTo);
}

View File

@ -51,7 +51,7 @@ patch:
content:
'application/json':
schema:
$ref: 'hs-hosting-managedserver-schemas.yaml#/components/schemas/HsManagedServerPatch'
$ref: 'hs-hosting-managedserver-schemas.yaml#/components/schemas/HsManagedServer'
"401":
$ref: 'error-responses.yaml#/components/responses/Unauthorized'
"403":