Skip to content

Commit 692c3ef

Browse files
committed
refactoring
1 parent b25cfbe commit 692c3ef

File tree

21 files changed

+113
-108
lines changed

21 files changed

+113
-108
lines changed

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
<bucket4j.version>8.0.1</bucket4j.version>
8080
<liquibase.version>4.29.1</liquibase.version>
8181
<opencsv.version>5.9</opencsv.version>
82+
<javax.ws.rs.version>2.1.1</javax.ws.rs.version>
8283

8384
<!-- Core utils -->
8485
<lombok.version>1.18.34</lombok.version>

spring-boot-starter-api/spring-boot-starter-api-graphql/autoconfigure/src/main/java/tech/cassandre/trading/bot/configuration/GraphQLAPISecurityConfiguration.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
@Configuration
1919
public class GraphQLAPISecurityConfiguration {
2020

21-
/** API Key. */
21+
/**
22+
* API Key.
23+
*/
2224
@Value("${cassandre.trading.bot.api.graphql.key:}")
2325
private String key;
2426

spring-boot-starter-test/autoconfigure/src/main/java/tech/cassandre/trading/bot/domain/BacktestingCandle.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public class BacktestingCandle {
7272
private BigDecimal volume;
7373

7474
/** Bucket start time. */
75-
@Column(name = "TIMESTAMP")
75+
@Column(name = "TIMESTAMP", columnDefinition = "TIMESTAMP WITH TIME ZONE")
7676
private OffsetDateTime timestamp;
7777

7878
/**

spring-boot-starter/autoconfigure/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
<dependency>
100100
<groupId>javax.ws.rs</groupId>
101101
<artifactId>javax.ws.rs-api</artifactId>
102-
<version>2.1.1</version>
102+
<version>${javax.ws.rs.version}</version>
103103
</dependency>
104104

105105
<!-- Tests -->

spring-boot-starter/autoconfigure/src/main/java/tech/cassandre/trading/bot/domain/ImportedCandle.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import org.apache.commons.lang3.builder.HashCodeBuilder;
1010
import org.hibernate.Hibernate;
1111
import tech.cassandre.trading.bot.dto.util.CurrencyPairDTO;
12-
import tech.cassandre.trading.bot.util.csv.EpochToZonedDateTime;
12+
import tech.cassandre.trading.bot.util.csv.EpochToOffsetDateTime;
1313
import tech.cassandre.trading.bot.util.test.ExcludeFromCoverageGeneratedReport;
1414

1515
import jakarta.persistence.Column;
@@ -71,7 +71,7 @@ public class ImportedCandle {
7171
private BigDecimal volume;
7272

7373
/** Bucket start time. */
74-
@CsvCustomBindByName(column = "TIMESTAMP", converter = EpochToZonedDateTime.class)
74+
@CsvCustomBindByName(column = "TIMESTAMP", converter = EpochToOffsetDateTime.class)
7575
@Column(name = "TIMESTAMP", columnDefinition = "TIMESTAMP WITH TIME ZONE")
7676
private OffsetDateTime timestamp;
7777

spring-boot-starter/autoconfigure/src/main/java/tech/cassandre/trading/bot/domain/ImportedTicker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import org.apache.commons.lang3.builder.HashCodeBuilder;
1010
import org.hibernate.Hibernate;
1111
import tech.cassandre.trading.bot.dto.util.CurrencyPairDTO;
12-
import tech.cassandre.trading.bot.util.csv.EpochToZonedDateTime;
12+
import tech.cassandre.trading.bot.util.csv.EpochToOffsetDateTime;
1313
import tech.cassandre.trading.bot.util.test.ExcludeFromCoverageGeneratedReport;
1414

1515
import jakarta.persistence.Column;
@@ -101,7 +101,7 @@ public class ImportedTicker {
101101
private BigDecimal askSize;
102102

103103
/** Information timestamp. */
104-
@CsvCustomBindByName(column = "TIMESTAMP", converter = EpochToZonedDateTime.class)
104+
@CsvCustomBindByName(column = "TIMESTAMP", converter = EpochToOffsetDateTime.class)
105105
@Column(name = "TIMESTAMP", columnDefinition = "TIMESTAMP WITH TIME ZONE")
106106
private OffsetDateTime timestamp;
107107

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
import java.util.Date;
1010

1111
/**
12-
* Allows to transform an epoch time to a Zoned date time.
12+
* Allows to transform an epoch time to a Offset date time.
1313
*/
14-
public class EpochToZonedDateTime extends AbstractBeanField<ImportedTicker, ImportedTicker> {
14+
public class EpochToOffsetDateTime extends AbstractBeanField<ImportedTicker, ImportedTicker> {
1515

1616
/** To milliseconds. */
1717
public static final int MILLISECONDS = 1_000;

spring-boot-starter/autoconfigure/src/test/java/tech/cassandre/trading/bot/test/core/batch/PositionLongFluxTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ public void checkReceivedData() {
203203
.currencyPair(ETH_BTC)
204204
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
205205
.price(new CurrencyAmountDTO("0.02", ETH_BTC.getQuoteCurrency()))
206-
.timestamp(createZonedDateTime("02-02-2020"))
206+
.timestamp(createOffsetDateTime("02-02-2020"))
207207
.build());
208208
// The same trade is emitted two times with an update (on timestamp).
209209
tradeFlux.emitValue(TradeDTO.builder()
@@ -213,7 +213,7 @@ public void checkReceivedData() {
213213
.currencyPair(ETH_BTC)
214214
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
215215
.price(new CurrencyAmountDTO("0.02", ETH_BTC.getQuoteCurrency()))
216-
.timestamp(createZonedDateTime("03-02-2020"))
216+
.timestamp(createOffsetDateTime("03-02-2020"))
217217
.build());
218218

219219
// Second trade.
@@ -224,7 +224,7 @@ public void checkReceivedData() {
224224
.currencyPair(ETH_BTC)
225225
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
226226
.price(new CurrencyAmountDTO("0.04", ETH_BTC.getQuoteCurrency()))
227-
.timestamp(createZonedDateTime("01-01-2020"))
227+
.timestamp(createOffsetDateTime("01-01-2020"))
228228
.build());
229229
// The same trade is emitted two times with an update (on timestamp).
230230
tradeFlux.emitValue(TradeDTO.builder()
@@ -234,7 +234,7 @@ public void checkReceivedData() {
234234
.currencyPair(ETH_BTC)
235235
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
236236
.price(new CurrencyAmountDTO("0.04", ETH_BTC.getQuoteCurrency()))
237-
.timestamp(createZonedDateTime("02-01-2020"))
237+
.timestamp(createOffsetDateTime("02-01-2020"))
238238
.build());
239239

240240
// onPositionStatusUpdate - Position 1 should change to OPENED.
@@ -518,7 +518,7 @@ public void checkReceivedData() {
518518
.currencyPair(ETH_BTC)
519519
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
520520
.price(new CurrencyAmountDTO("1", ETH_BTC.getQuoteCurrency()))
521-
.timestamp(createZonedDateTime("01-01-2020"))
521+
.timestamp(createOffsetDateTime("01-01-2020"))
522522
.build());
523523

524524
// We send a duplicated value.
@@ -528,7 +528,7 @@ public void checkReceivedData() {
528528
.currencyPair(ETH_BTC)
529529
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
530530
.price(new CurrencyAmountDTO("1", ETH_BTC.getQuoteCurrency()))
531-
.timestamp(createZonedDateTime("01-01-2020"))
531+
.timestamp(createOffsetDateTime("01-01-2020"))
532532
.build());
533533

534534
// onPosition for first trade arrival.
@@ -546,7 +546,7 @@ public void checkReceivedData() {
546546
.currencyPair(ETH_BTC)
547547
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
548548
.price(new CurrencyAmountDTO("1", ETH_BTC.getQuoteCurrency()))
549-
.timestamp(createZonedDateTime("02-01-2020"))
549+
.timestamp(createOffsetDateTime("02-01-2020"))
550550
.build());
551551

552552
// onPositionStatusUpdate - Position should be closed.

spring-boot-starter/autoconfigure/src/test/java/tech/cassandre/trading/bot/test/core/batch/PositionShortFluxTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ public void checkReceivedData() {
203203
.currencyPair(ETH_BTC)
204204
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
205205
.price(new CurrencyAmountDTO("0.02", ETH_BTC.getQuoteCurrency()))
206-
.timestamp(createZonedDateTime("02-02-2020"))
206+
.timestamp(createOffsetDateTime("02-02-2020"))
207207
.build());
208208
// The same trade is emitted two times with an update (on timestamp).
209209
tradeFlux.emitValue(TradeDTO.builder()
@@ -213,7 +213,7 @@ public void checkReceivedData() {
213213
.currencyPair(ETH_BTC)
214214
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
215215
.price(new CurrencyAmountDTO("0.02", ETH_BTC.getQuoteCurrency()))
216-
.timestamp(createZonedDateTime("03-02-2020"))
216+
.timestamp(createOffsetDateTime("03-02-2020"))
217217
.build());
218218

219219
// Second trade.
@@ -224,7 +224,7 @@ public void checkReceivedData() {
224224
.currencyPair(ETH_BTC)
225225
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
226226
.price(new CurrencyAmountDTO("0.04", ETH_BTC.getQuoteCurrency()))
227-
.timestamp(createZonedDateTime("01-01-2020"))
227+
.timestamp(createOffsetDateTime("01-01-2020"))
228228
.build());
229229
// The same trade is emitted two times with an update (on time).
230230
tradeFlux.emitValue(TradeDTO.builder()
@@ -234,7 +234,7 @@ public void checkReceivedData() {
234234
.currencyPair(ETH_BTC)
235235
.amount(new CurrencyAmountDTO("5", ETH_BTC.getBaseCurrency()))
236236
.price(new CurrencyAmountDTO("0.04", ETH_BTC.getQuoteCurrency()))
237-
.timestamp(createZonedDateTime("02-01-2020"))
237+
.timestamp(createOffsetDateTime("02-01-2020"))
238238
.build());
239239

240240
// onPositionStatusUpdate - Position 1 should change from OPENING to OPENED.
@@ -521,7 +521,7 @@ public void checkReceivedData() {
521521
.currencyPair(ETH_BTC)
522522
.amount(new CurrencyAmountDTO("500", ETH_BTC.getBaseCurrency()))
523523
.price(new CurrencyAmountDTO("1", ETH_BTC.getQuoteCurrency()))
524-
.timestamp(createZonedDateTime("01-01-2020"))
524+
.timestamp(createOffsetDateTime("01-01-2020"))
525525
.build());
526526

527527
// We send a duplicated value.
@@ -531,7 +531,7 @@ public void checkReceivedData() {
531531
.currencyPair(ETH_BTC)
532532
.amount(new CurrencyAmountDTO("500", ETH_BTC.getBaseCurrency()))
533533
.price(new CurrencyAmountDTO("1", ETH_BTC.getQuoteCurrency()))
534-
.timestamp(createZonedDateTime("01-01-2020"))
534+
.timestamp(createOffsetDateTime("01-01-2020"))
535535
.build());
536536

537537
// onPosition for first trade arrival.
@@ -549,7 +549,7 @@ public void checkReceivedData() {
549549
.currencyPair(ETH_BTC)
550550
.amount(new CurrencyAmountDTO("500", ETH_BTC.getBaseCurrency()))
551551
.price(new CurrencyAmountDTO("1", ETH_BTC.getQuoteCurrency()))
552-
.timestamp(createZonedDateTime("02-01-2020"))
552+
.timestamp(createOffsetDateTime("02-01-2020"))
553553
.build());
554554

555555
// onPositionStatusUpdate - Position should be closed.

spring-boot-starter/autoconfigure/src/test/java/tech/cassandre/trading/bot/test/core/batch/TradeFluxTest.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void checkReceivedData() {
8282
assertEquals(new CurrencyAmountDTO("2.200002", ETH_BTC.getQuoteCurrency()), t.getPrice());
8383
assertEquals(new CurrencyAmountDTO("3.300003", BTC), t.getFee());
8484
assertEquals("Ref TRADE_0000001", t.getUserReference());
85-
assertTrue(createZonedDateTime(1).isEqual(t.getTimestamp()));
85+
assertTrue(createOffsetDateTime(1).isEqual(t.getTimestamp()));
8686

8787
// Check update 2.
8888
t = trades.next();
@@ -95,7 +95,7 @@ public void checkReceivedData() {
9595
assertEquals(new CurrencyAmountDTO("2.200002", ETH_BTC.getQuoteCurrency()), t.getPrice());
9696
assertEquals(new CurrencyAmountDTO("3.300003", BTC), t.getFee());
9797
assertEquals("Ref TRADE_0000002", t.getUserReference());
98-
assertTrue(createZonedDateTime("01-09-2020").isEqual(t.getTimestamp()));
98+
assertTrue(createOffsetDateTime("01-09-2020").isEqual(t.getTimestamp()));
9999

100100
// Check update 3.
101101
t = trades.next();
@@ -108,7 +108,7 @@ public void checkReceivedData() {
108108
assertEquals(new CurrencyAmountDTO("2.200002", ETH_USDT.getQuoteCurrency()), t.getPrice());
109109
assertEquals(new CurrencyAmountDTO("3.300003", ETH), t.getFee());
110110
assertEquals("Ref TRADE_0000003", t.getUserReference());
111-
assertTrue(createZonedDateTime("01-09-2020").isEqual(t.getTimestamp()));
111+
assertTrue(createOffsetDateTime("01-09-2020").isEqual(t.getTimestamp()));
112112

113113
// Check update 4.
114114
t = trades.next();
@@ -121,7 +121,7 @@ public void checkReceivedData() {
121121
assertEquals(new CurrencyAmountDTO("2.200002", ETH_BTC.getQuoteCurrency()), t.getPrice());
122122
assertEquals(new CurrencyAmountDTO("3.300003", BTC), t.getFee());
123123
assertEquals("Ref TRADE_0000004", t.getUserReference());
124-
assertTrue(createZonedDateTime("01-09-2020").isEqual(t.getTimestamp()));
124+
assertTrue(createOffsetDateTime("01-09-2020").isEqual(t.getTimestamp()));
125125

126126
// Check update 5.
127127
t = trades.next();
@@ -134,7 +134,7 @@ public void checkReceivedData() {
134134
assertEquals(new CurrencyAmountDTO("2.200002", ETH_BTC.getQuoteCurrency()), t.getPrice());
135135
assertEquals(new CurrencyAmountDTO("3.300003", BTC), t.getFee());
136136
assertEquals("Ref TRADE_0000005", t.getUserReference());
137-
assertTrue(createZonedDateTime("01-09-2020").isEqual(t.getTimestamp()));
137+
assertTrue(createOffsetDateTime("01-09-2020").isEqual(t.getTimestamp()));
138138

139139
// Check update 6.
140140
t = trades.next();
@@ -147,7 +147,7 @@ public void checkReceivedData() {
147147
assertEquals(new CurrencyAmountDTO("2.200002", ETH_USDT.getQuoteCurrency()), t.getPrice());
148148
assertEquals(new CurrencyAmountDTO("3.300003", USDT), t.getFee());
149149
assertEquals("Ref TRADE_0000006", t.getUserReference());
150-
assertTrue(createZonedDateTime("01-08-2018").isEqual(t.getTimestamp()));
150+
assertTrue(createOffsetDateTime("01-08-2018").isEqual(t.getTimestamp()));
151151

152152
// Check update 7.
153153
t = trades.next();
@@ -160,7 +160,7 @@ public void checkReceivedData() {
160160
assertEquals(new CurrencyAmountDTO("2.200002", ETH_BTC.getQuoteCurrency()), t.getPrice());
161161
assertEquals(new CurrencyAmountDTO("3.300003", BTC), t.getFee());
162162
assertEquals("Ref TRADE_0000008", t.getUserReference());
163-
assertTrue(createZonedDateTime("02-09-2020").isEqual(t.getTimestamp()));
163+
assertTrue(createOffsetDateTime("02-09-2020").isEqual(t.getTimestamp()));
164164

165165
// Check update 8.
166166
t = trades.next();
@@ -173,7 +173,7 @@ public void checkReceivedData() {
173173
assertEquals(new CurrencyAmountDTO("2.220002", ETH_USDT.getQuoteCurrency()), t.getPrice());
174174
assertEquals(new CurrencyAmountDTO("3.330003", BTC), t.getFee());
175175
assertEquals("Ref TRADE_0000003", t.getUserReference());
176-
assertTrue(createZonedDateTime("01-09-2021").isEqual(t.getTimestamp()));
176+
assertTrue(createOffsetDateTime("01-09-2021").isEqual(t.getTimestamp()));
177177

178178
// =============================================================================================================
179179
// Check data we have in strategy & database.
@@ -200,7 +200,7 @@ public void checkReceivedData() {
200200
assertEquals(new CurrencyAmountDTO("2.200002", ETH_BTC.getQuoteCurrency()), t1.get().getPrice());
201201
assertEquals(new CurrencyAmountDTO("3.300003", BTC), t1.get().getFee());
202202
assertEquals("Ref TRADE_0000001", t1.get().getUserReference());
203-
assertTrue(createZonedDateTime(1).isEqual(t1.get().getTimestamp()));
203+
assertTrue(createOffsetDateTime(1).isEqual(t1.get().getTimestamp()));
204204

205205
// Trade TRADE_0000002.
206206
final Optional<TradeDTO> t2 = strategy.getTradeByTradeId("TRADE_0000002");
@@ -214,7 +214,7 @@ public void checkReceivedData() {
214214
assertEquals(new CurrencyAmountDTO("2.200002", ETH_BTC.getQuoteCurrency()), t2.get().getPrice());
215215
assertEquals(new CurrencyAmountDTO("3.300003", BTC), t2.get().getFee());
216216
assertEquals("Ref TRADE_0000002", t2.get().getUserReference());
217-
assertTrue(createZonedDateTime("01-09-2020").isEqual(t2.get().getTimestamp()));
217+
assertTrue(createOffsetDateTime("01-09-2020").isEqual(t2.get().getTimestamp()));
218218

219219
// Trade TRADE_0000003 - The trade 3 was received two times so data have been updated.
220220
final Optional<TradeDTO> t3 = strategy.getTradeByTradeId("TRADE_0000003");
@@ -228,7 +228,7 @@ public void checkReceivedData() {
228228
assertEquals(new CurrencyAmountDTO("2.220002", ETH_USDT.getQuoteCurrency()), t3.get().getPrice());
229229
assertEquals(new CurrencyAmountDTO("3.330003", BTC), t3.get().getFee());
230230
assertEquals("Ref TRADE_0000003", t3.get().getUserReference());
231-
assertTrue(createZonedDateTime("01-09-2021").isEqual(t3.get().getTimestamp()));
231+
assertTrue(createOffsetDateTime("01-09-2021").isEqual(t3.get().getTimestamp()));
232232

233233
// Trade TRADE_0000004.
234234
final Optional<TradeDTO> t4 = strategy.getTradeByTradeId("TRADE_0000004");
@@ -242,7 +242,7 @@ public void checkReceivedData() {
242242
assertEquals(new CurrencyAmountDTO("2.200002", ETH_BTC.getQuoteCurrency()), t4.get().getPrice());
243243
assertEquals(new CurrencyAmountDTO("3.300003", BTC), t4.get().getFee());
244244
assertEquals("Ref TRADE_0000004", t4.get().getUserReference());
245-
assertTrue(createZonedDateTime("01-09-2020").isEqual(t4.get().getTimestamp()));
245+
assertTrue(createOffsetDateTime("01-09-2020").isEqual(t4.get().getTimestamp()));
246246

247247
// Trade TRADE_0000005.
248248
final Optional<TradeDTO> t5 = strategy.getTradeByTradeId("TRADE_0000005");
@@ -256,7 +256,7 @@ public void checkReceivedData() {
256256
assertEquals(new CurrencyAmountDTO("2.200002", ETH_BTC.getQuoteCurrency()), t5.get().getPrice());
257257
assertEquals(new CurrencyAmountDTO("3.300003", BTC), t5.get().getFee());
258258
assertEquals("Ref TRADE_0000005", t5.get().getUserReference());
259-
assertTrue(createZonedDateTime("01-09-2020").isEqual(t5.get().getTimestamp()));
259+
assertTrue(createOffsetDateTime("01-09-2020").isEqual(t5.get().getTimestamp()));
260260

261261
// Trade TRADE_0000006.
262262
final Optional<TradeDTO> t6 = strategy.getTradeByTradeId("TRADE_0000006");
@@ -270,7 +270,7 @@ public void checkReceivedData() {
270270
assertEquals(new CurrencyAmountDTO("2.200002", ETH_USDT.getQuoteCurrency()), t6.get().getPrice());
271271
assertEquals(new CurrencyAmountDTO("3.300003", USDT), t6.get().getFee());
272272
assertEquals("Ref TRADE_0000006", t6.get().getUserReference());
273-
assertTrue(createZonedDateTime("01-08-2018").isEqual(t6.get().getTimestamp()));
273+
assertTrue(createOffsetDateTime("01-08-2018").isEqual(t6.get().getTimestamp()));
274274

275275
// Trade TRADE_0000008.
276276
final Optional<TradeDTO> t8 = strategy.getTradeByTradeId("TRADE_0000008");
@@ -284,7 +284,7 @@ public void checkReceivedData() {
284284
assertEquals(new CurrencyAmountDTO("2.200002", ETH_BTC.getQuoteCurrency()), t8.get().getPrice());
285285
assertEquals(new CurrencyAmountDTO("3.300003", BTC), t8.get().getFee());
286286
assertEquals("Ref TRADE_0000008", t8.get().getUserReference());
287-
assertTrue(createZonedDateTime("02-09-2020").isEqual(t8.get().getTimestamp()));
287+
assertTrue(createOffsetDateTime("02-09-2020").isEqual(t8.get().getTimestamp()));
288288

289289
// =============================================================================================================
290290
// Check that there is a correct link between order and trades.

0 commit comments

Comments
 (0)