Skip to content

Commit 5bbcd0b

Browse files
Merge remote-tracking branch 'other-fork/ApiRemoteStartStop'
2 parents ffb4b80 + 7c0c773 commit 5bbcd0b

24 files changed

+999
-7
lines changed

src/main/java/de/rwth/idsg/steve/ocpp/CommunicationTask.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ public CommunicationTask(OcppVersion ocppVersion, S params) {
7373
this(ocppVersion, params, TaskOrigin.INTERNAL, "SteVe");
7474
}
7575

76+
public CommunicationTask(OcppVersion ocppVersion, S params, String caller) {
77+
this(ocppVersion, params, TaskOrigin.EXTERNAL, caller);
78+
}
79+
7680
/**
7781
* Do not expose the constructor, make it package-private
7882
*/

src/main/java/de/rwth/idsg/steve/ocpp/task/RemoteStartTransactionTask.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ public RemoteStartTransactionTask(OcppVersion ocppVersion, RemoteStartTransactio
3535
super(ocppVersion, params);
3636
}
3737

38+
public RemoteStartTransactionTask(OcppVersion ocppVersion, RemoteStartTransactionParams params, String caller) {
39+
super(ocppVersion, params, caller);
40+
}
41+
3842
@Override
3943
public OcppCallback<String> defaultCallback() {
4044
return new StringOcppCallback();

src/main/java/de/rwth/idsg/steve/ocpp/task/RemoteStopTransactionTask.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ public RemoteStopTransactionTask(OcppVersion ocppVersion, RemoteStopTransactionP
3535
super(ocppVersion, params);
3636
}
3737

38+
public RemoteStopTransactionTask(OcppVersion ocppVersion, RemoteStopTransactionParams params, String caller) {
39+
super(ocppVersion, params, caller);
40+
}
41+
3842
@Override
3943
public OcppCallback<String> defaultCallback() {
4044
return new StringOcppCallback();

src/main/java/de/rwth/idsg/steve/ocpp/task/UnlockConnectorTask.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ public UnlockConnectorTask(OcppVersion ocppVersion, UnlockConnectorParams params
3535
super(ocppVersion, params);
3636
}
3737

38+
public UnlockConnectorTask(OcppVersion ocppVersion, UnlockConnectorParams params, String caller) {
39+
super(ocppVersion, params, caller);
40+
}
41+
3842
@Override
3943
public OcppCallback<String> defaultCallback() {
4044
return new StringOcppCallback();

src/main/java/de/rwth/idsg/steve/repository/ChargePointRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ default List<ChargePointSelect> getChargePointSelect(OcppProtocol protocol, List
4545
return getChargePointSelect(protocol, inStatusFilter, Collections.emptyList());
4646
}
4747

48+
List<ChargePointSelect> getChargePointSelect(String chageBoxID);
49+
4850
List<String> getChargeBoxIds();
4951
Map<String, Integer> getChargeBoxIdPkPair(List<String> chargeBoxIdList);
5052

src/main/java/de/rwth/idsg/steve/repository/TransactionRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,14 @@
3030
* @since 19.08.2014
3131
*/
3232
public interface TransactionRepository {
33+
Transaction getTransaction(int transactionPk);
34+
3335
List<Transaction> getTransactions(TransactionQueryForm form);
3436

3537
void writeTransactionsCSV(TransactionQueryForm form, Writer writer);
3638

3739
List<Integer> getActiveTransactionIds(String chargeBoxId);
40+
Integer getActiveTransactionId(String chargeBoxId, Integer connectorId);
3841

3942
TransactionDetails getDetails(int transactionPk);
4043
}

src/main/java/de/rwth/idsg/steve/repository/dto/ConnectorStatus.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
*/
1919
package de.rwth.idsg.steve.repository.dto;
2020

21+
import com.fasterxml.jackson.annotation.JsonIgnore;
2122
import de.rwth.idsg.steve.ocpp.OcppProtocol;
23+
import io.swagger.annotations.ApiModelProperty;
2224
import lombok.Builder;
2325
import lombok.Getter;
2426
import lombok.Setter;
@@ -32,17 +34,32 @@
3234
@Getter
3335
@Builder
3436
public final class ConnectorStatus {
35-
private final String chargeBoxId, timeStamp, status, errorCode;
36-
private final int chargeBoxPk, connectorId;
37+
@JsonIgnore
38+
@ApiModelProperty(value = "Charge Box DB key", hidden = true)
39+
private final int chargeBoxPk;
40+
@ApiModelProperty(value = "Charge Box ID")
41+
private final String chargeBoxId;
42+
@ApiModelProperty(value = "Connector ID")
43+
private final int connectorId;
3744

45+
@ApiModelProperty(value = "Status")
46+
private final String status;
47+
@ApiModelProperty(value = "Error code")
48+
private final String errorCode;
49+
50+
@ApiModelProperty(value = "Timestamp")
51+
private final String timeStamp;
3852
// For additional internal processing. Not related to the humanized
3953
// String version above, which is for representation on frontend
54+
@ApiModelProperty(value = "Timestamp of the status")
4055
private final DateTime statusTimestamp;
4156

57+
@ApiModelProperty(value = "OCPP version")
4258
private final OcppProtocol ocppProtocol;
4359

4460
// This is true, if the chargeBox this connector belongs to is a WS/JSON station
4561
// and it is disconnected at the moment of building this DTO.
62+
@ApiModelProperty(value = "Json and Disconnected")
4663
@Setter
4764
@Builder.Default
4865
private boolean jsonAndDisconnected = false;

src/main/java/de/rwth/idsg/steve/repository/dto/TaskOverview.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package de.rwth.idsg.steve.repository.dto;
2020

2121
import de.rwth.idsg.steve.ocpp.TaskOrigin;
22+
import io.swagger.annotations.ApiModelProperty;
2223
import lombok.Builder;
2324
import lombok.EqualsAndHashCode;
2425
import lombok.Getter;
@@ -32,8 +33,17 @@
3233
@EqualsAndHashCode
3334
@Builder
3435
public final class TaskOverview implements Comparable<TaskOverview> {
35-
private final int taskId, responseCount, requestCount;
36-
private final DateTime start, end;
36+
@ApiModelProperty(value = "Task ID")
37+
private final int taskId;
38+
@ApiModelProperty(value = "Response count")
39+
private final int responseCount;
40+
@ApiModelProperty(value = "Request count")
41+
private final int requestCount;
42+
@ApiModelProperty(value = "Starttime")
43+
private final DateTime start;
44+
@ApiModelProperty(value = "Endtime")
45+
private final DateTime end;
46+
@ApiModelProperty(value = "Task triggered internal or external")
3747
private final TaskOrigin origin;
3848

3949
/**

src/main/java/de/rwth/idsg/steve/repository/impl/ChargePointRepositoryImpl.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,16 @@ public List<ChargePointSelect> getChargePointSelect(OcppProtocol protocol, List<
103103
.map(r -> new ChargePointSelect(protocol.getTransport(), r.value1(), r.value2()));
104104
}
105105

106+
@Override // returns List of zero or one ChargeBox
107+
public List<ChargePointSelect> getChargePointSelect(String chageBoxID) {
108+
return ctx.select(CHARGE_BOX.CHARGE_BOX_ID, CHARGE_BOX.ENDPOINT_ADDRESS, CHARGE_BOX.OCPP_PROTOCOL)
109+
.from(CHARGE_BOX)
110+
.where(CHARGE_BOX.CHARGE_BOX_ID.eq(chageBoxID))
111+
.fetch()
112+
.map(r -> new ChargePointSelect(OcppProtocol.fromCompositeValue(r.value3()).getTransport(),
113+
r.value1(), r.value2()));
114+
}
115+
106116
@Override
107117
public List<String> getChargeBoxIds() {
108118
return ctx.select(CHARGE_BOX.CHARGE_BOX_ID)

src/main/java/de/rwth/idsg/steve/repository/impl/TransactionRepositoryImpl.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,15 @@ public TransactionRepositoryImpl(DSLContext ctx) {
6464
this.ctx = ctx;
6565
}
6666

67+
@Override
68+
public Transaction getTransaction(int transactionPk) {
69+
TransactionQueryForm form = new TransactionQueryForm();
70+
form.setTransactionPk(transactionPk);
71+
form.setReturnCSV(false);
72+
form.setType(TransactionQueryForm.QueryType.ALL);
73+
return getInternal(form).fetchAny(new TransactionMapper());
74+
}
75+
6776
@Override
6877
public List<Transaction> getTransactions(TransactionQueryForm form) {
6978
return getInternal(form).fetch()
@@ -87,6 +96,19 @@ public List<Integer> getActiveTransactionIds(String chargeBoxId) {
8796
.fetch(TRANSACTION.TRANSACTION_PK);
8897
}
8998

99+
@Override
100+
public Integer getActiveTransactionId(String chargeBoxId, Integer connectorId) {
101+
return ctx.select(TRANSACTION.TRANSACTION_PK)
102+
.from(TRANSACTION)
103+
.join(CONNECTOR)
104+
.on(TRANSACTION.CONNECTOR_PK.equal(CONNECTOR.CONNECTOR_PK))
105+
.and(CONNECTOR.CHARGE_BOX_ID.equal(chargeBoxId))
106+
.where(TRANSACTION.STOP_TIMESTAMP.isNull())
107+
.and(CONNECTOR.CONNECTOR_ID.equal(connectorId))
108+
.orderBy(TRANSACTION.TRANSACTION_PK.desc()) // to avoid fetching ghost transactions, fetch the latest
109+
.fetchAny(TRANSACTION.TRANSACTION_PK);
110+
}
111+
90112
@Override
91113
public TransactionDetails getDetails(int transactionPk) {
92114

0 commit comments

Comments
 (0)