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.hs.hosting.generated.api.v1.api.HsHostingManagedserversApi;
import net.hostsharing.hsadminng.context.Context; 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.KeyValueMap;
import net.hostsharing.hsadminng.mapper.Mapper; import net.hostsharing.hsadminng.mapper.Mapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -31,7 +34,7 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
public ResponseEntity<List<HsManagedServerConfig>> listManagedServersByDebitorUuid( public ResponseEntity<List<HsManagedServerResource>> listManagedServersByDebitorUuid(
final String currentUser, final String currentUser,
final String assumedRoles, final String assumedRoles,
final UUID debitorUuid) { final UUID debitorUuid) {
@ -43,6 +46,7 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
return ResponseEntity.ok(resources); return ResponseEntity.ok(resources);
} }
@Override @Override
@Transactional @Transactional
public ResponseEntity<HsManagedServerResource> addManagedServer( public ResponseEntity<HsManagedServerResource> addManagedServer(
@ -52,7 +56,7 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
context.define(currentUser, assumedRoles); 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); final var saved = managedServerRepo.save(entityToSave);
@ -83,7 +87,7 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
@Override @Override
@Transactional @Transactional
public ResponseEntity<Void> deleteBookingIemByUuid( public ResponseEntity<Void> deleteManagedServerUuid(
final String currentUser, final String currentUser,
final String assumedRoles, final String assumedRoles,
final UUID managedServerUuid) { final UUID managedServerUuid) {
@ -107,14 +111,14 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
final var current = managedServerRepo.findByUuid(managedServerUuid).orElseThrow(); 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 saved = managedServerRepo.save(current);
final var mapped = mapper.map(saved, HsManagedServerResource.class, ENTITY_TO_RESOURCE_POSTMAPPER); final var mapped = mapper.map(saved, HsManagedServerResource.class, ENTITY_TO_RESOURCE_POSTMAPPER);
return ResponseEntity.ok(mapped); 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()); resource.setValidFrom(entity.getValidity().lower());
if (entity.getValidity().hasUpperBound()) { if (entity.getValidity().hasUpperBound()) {
resource.setValidTo(entity.getValidity().upper().minusDays(1)); resource.setValidTo(entity.getValidity().upper().minusDays(1));
@ -122,8 +126,8 @@ public class HsManagedServerController implements HsHostingManagedserversApi {
}; };
@SuppressWarnings("unchecked") @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.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; 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.EntityPatcher;
import net.hostsharing.hsadminng.mapper.KeyValueMap; import net.hostsharing.hsadminng.mapper.KeyValueMap;
import net.hostsharing.hsadminng.mapper.OptionalFromJson; import net.hostsharing.hsadminng.mapper.OptionalFromJson;
@ -19,8 +20,8 @@ public class HsManagedServerEntityPatcher implements EntityPatcher<HsManagedServ
public void apply(final HsManagedServerPatchResource resource) { public void apply(final HsManagedServerPatchResource resource) {
OptionalFromJson.of(resource.getCaption()) OptionalFromJson.of(resource.getCaption())
.ifPresent(entity::setCaption); .ifPresent(entity::setCaption);
Optional.ofNullable(resource.getResources()) Optional.ofNullable(resource.getConfig())
.ifPresent(r -> entity.getResources().patch(KeyValueMap.from(resource.getResources()))); .ifPresent(r -> entity.getResources().patch(KeyValueMap.from(resource.getConfig())));
OptionalFromJson.of(resource.getValidTo()) OptionalFromJson.of(resource.getValidTo())
.ifPresent(entity::setValidTo); .ifPresent(entity::setValidTo);
} }

View File

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