WIP
This commit is contained in:
parent
953acb14cc
commit
7c1ebe697c
@ -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()));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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":
|
||||||
|
Loading…
Reference in New Issue
Block a user