add force/breach info to close details

This commit is contained in:
Carsten Otto
2021-12-11 13:10:25 +01:00
parent 382777f5ee
commit ddf353b854
11 changed files with 141 additions and 29 deletions

View File

@@ -118,7 +118,7 @@ public class ChannelController {
if (closedChannel == null) {
throw new NotFoundException();
}
return new ClosedChannelDetailsDto(closedChannel.getCloseInitiator(), closedChannel.getCloseHeight());
return ClosedChannelDetailsDto.createFromModel(closedChannel);
}
@Timed
@@ -151,11 +151,6 @@ public class ChannelController {
}
private ClosedChannelDetailsDto getCloseDetailsForChannel(LocalChannel localChannel) {
if (localChannel.isClosed()) {
ClosedChannel closedChannel = localChannel.getAsClosedChannel();
return new ClosedChannelDetailsDto(closedChannel.getCloseInitiator(), closedChannel.getCloseHeight());
} else {
return ClosedChannelDetailsDto.UNKNOWN;
}
return ClosedChannelDetailsDto.createFromModel(localChannel);
}
}

View File

@@ -1,11 +1,28 @@
package de.cotto.lndmanagej.controller.dto;
import de.cotto.lndmanagej.model.CloseInitiator;
import de.cotto.lndmanagej.model.ClosedChannel;
import de.cotto.lndmanagej.model.LocalChannel;
public record ClosedChannelDetailsDto(String initiator, int height) {
public static final ClosedChannelDetailsDto UNKNOWN = new ClosedChannelDetailsDto("", 0);
public record ClosedChannelDetailsDto(String initiator, int height, boolean force, boolean breach) {
public static final ClosedChannelDetailsDto UNKNOWN =
new ClosedChannelDetailsDto("", 0, false, false);
public ClosedChannelDetailsDto(CloseInitiator initiator, int height) {
this(initiator.toString(), height);
public ClosedChannelDetailsDto(CloseInitiator initiator, int height, boolean force, boolean breach) {
this(initiator.toString(), height, force, breach);
}
public static ClosedChannelDetailsDto createFromModel(LocalChannel localChannel) {
boolean closed = localChannel.isClosed();
if (closed) {
ClosedChannel closedChannel = localChannel.getAsClosedChannel();
boolean forceClosed = closedChannel.isForceClosed();
boolean breach = forceClosed && closedChannel.getAsForceClosedChannel().isBreach();
return new ClosedChannelDetailsDto(
closedChannel.getCloseInitiator(), closedChannel.getCloseHeight(), forceClosed, breach
);
} else {
return UNKNOWN;
}
}
}