feat: Allow not changed password

feature/altai
Terekhin Alexandr 2 years ago
parent 177cf3dc38
commit 9e2cc2f657
Signed by: didinst
GPG Key ID: D2EF94423C23BF12
  1. 8
      src/main/java/com/yablochkov/ocppstub/EventHandler.java
  2. 3
      src/main/java/com/yablochkov/ocppstub/SessionService.java
  3. 15
      src/main/java/com/yablochkov/ocppstub/TransactionService.java
  4. 16
      src/main/java/com/yablochkov/ocppstub/rest/ResetController.java

@ -7,6 +7,7 @@ import eu.chargetime.ocpp.feature.profile.ServerCoreEventHandler;
import eu.chargetime.ocpp.model.SessionInformation;
import eu.chargetime.ocpp.model.core.*;
import java.time.ZonedDateTime;
import java.util.Optional;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@ -76,7 +77,12 @@ public class EventHandler implements ServerCoreEventHandler, ServerEvents {
public StopTransactionConfirmation handleStopTransactionRequest(UUID sessionIndex, StopTransactionRequest request) {
log.info("Stop transaction request {}", request);
transactionService.stopByRequest(sessionIndex, request.getTransactionId());
return new StopTransactionConfirmation();
var confirmation = new StopTransactionConfirmation();
Optional.ofNullable(request.getIdTag())
.ifPresent((idTag) -> confirmation.setIdTagInfo(new IdTagInfo(AuthorizationStatus.Expired)));
log.info("Stop transaction {}, with idTag {} for session {}", request.getTransactionId(), request.getIdTag(), sessionIndex);
return confirmation;
}
@Override

@ -54,7 +54,8 @@ public class SessionService {
.filter((entry) -> {
var entryValue = entry.getValue();
if (Objects.nonNull(entryValue)) {
return Objects.equals(entryValue.getIdentifier(), identity);
return Objects.equals(entryValue.getIdentifier(), identity) ||
Objects.equals(entryValue.getIdentifier(),"/" + identity);
}
return false;
})

@ -60,19 +60,26 @@ public class TransactionService {
}
}
public RemoteStartTransactionConfirmation remoteStart(String id) {
public RemoteStartTransactionConfirmation remoteStart(String id, Integer connectorId) {
log.info("Try to start transaction for {}", id);
var session = sessionService.getSessionByIdentity(id);
log.info("Found session {}", session);
if (Objects.nonNull(session)) {
try {
var future = ocppStub.send(session,
new RemoteStartTransactionRequest(UUID.randomUUID().toString()));
//20 char limit
String idTag = String.format("%f.0", Math.random() * 1_000_000);
var request = new RemoteStartTransactionRequest(idTag);
if (Objects.nonNull(connectorId)) {
request.setConnectorId(connectorId);
}
var future = ocppStub.send(session, request);
Confirmation confirmation = future.toCompletableFuture().get();
if (confirmation instanceof RemoteStartTransactionConfirmation startConfirmation) {
RemoteStartStopStatus status = startConfirmation.getStatus();
var status = startConfirmation.getStatus();
log.info("Start transaction status {}", status);
if (RemoteStartStopStatus.Accepted.equals(status)) {
transactionMap.remove(id);

@ -15,8 +15,6 @@ import eu.chargetime.ocpp.model.core.RemoteStopTransactionConfirmation;
import eu.chargetime.ocpp.model.core.ResetConfirmation;
import eu.chargetime.ocpp.model.core.ResetRequest;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.ExecutionException;
import lombok.extern.slf4j.Slf4j;
@ -51,12 +49,7 @@ public class ResetController {
@PathVariable("identity") final String identity, @RequestBody final ResetRequest request) {
// TODO REFACTOR THIS
log.info("Send reset to {}, parameters {}", identity, request);
var session = sessionService.getCache()
.entrySet().stream()
.filter((entry) -> Objects.equals(entry.getValue().getIdentifier(), identity))
.map(Entry::getKey)
.findFirst()
.orElseThrow();
var session = sessionService.getSessionByIdentity(identity);
try {
var stage = ocppStub.send(session, request);
@ -76,7 +69,12 @@ public class ResetController {
@PostMapping("/start/{identity}")
public RemoteStartTransactionConfirmation startTransaction(@PathVariable("identity") final String identity) {
return transactionService.remoteStart(identity);
return transactionService.remoteStart(identity, null);
}
@PostMapping("/start/{identity}/{connectorId}")
public RemoteStartTransactionConfirmation startTransactionOnConnector(@PathVariable("identity") final String identity, @PathVariable("connectorId") final Integer connectorId) {
return transactionService.remoteStart(identity, connectorId);
}
@DeleteMapping("/stop/{identity}")

Loading…
Cancel
Save