Skip to content

Commit 881b3aa

Browse files
Srđan Totzb-sr
Srđan Tot
authored andcommitted
Add max stake operation
1 parent 7c04a12 commit 881b3aa

File tree

6 files changed

+253
-2
lines changed

6 files changed

+253
-2
lines changed

src/sdk/src/main/java/com/sportradar/mbs/sdk/entities/request/ContentRequest.java

+11-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
@JsonSubTypes.Type(value = CancelAckRequest.class, name = "cancel-ack"),
2727
@JsonSubTypes.Type(value = WithdrawalInformRequest.class, name = "withdrawal-inform"),
2828
@JsonSubTypes.Type(value = ExtSettlementAckRequest.class, name = "ext-settlement-ack"),
29-
@JsonSubTypes.Type(value = BalanceChangeInformRequest.class, name = "balance-change-inform")
29+
@JsonSubTypes.Type(value = BalanceChangeInformRequest.class, name = "balance-change-inform"),
30+
@JsonSubTypes.Type(value = MaxStakeRequest.class, name = "max-stake")
3031
})
3132
public class ContentRequest {
3233

@@ -156,4 +157,13 @@ public static BalanceChangeInformRequest.Builder newBalanceChangeInformRequestBu
156157
return BalanceChangeInformRequest.newBuilder();
157158
}
158159

160+
/**
161+
* Creates a new instance of the MaxStakeRequest builder.
162+
*
163+
* @return The MaxStakeRequest builder.
164+
*/
165+
public static MaxStakeRequest.Builder newMaxStakeRequestBuilder() {
166+
return MaxStakeRequest.newBuilder();
167+
}
168+
159169
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package com.sportradar.mbs.sdk.entities.request;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
5+
/**
6+
* Represents a max stake request.
7+
*/
8+
public class MaxStakeRequest extends ContentRequest {
9+
10+
@JsonProperty("ticket")
11+
private TicketRequest ticket;
12+
13+
/**
14+
* Gets the ticket for the request.
15+
*
16+
* @return The ticket for the request.
17+
*/
18+
public TicketRequest getTicket() {
19+
return this.ticket;
20+
}
21+
22+
/**
23+
* Sets the ticket for the request.
24+
*
25+
* @param value The ticket for the request.
26+
*/
27+
public void setTicket(TicketRequest value) {
28+
this.ticket = value;
29+
}
30+
31+
32+
/**
33+
* Creates a new instance of the MaxStakeRequest.Builder class.
34+
*
35+
* @return A new instance of the MaxStakeRequest.Builder class.
36+
*/
37+
public static Builder newBuilder() {
38+
return new Builder();
39+
}
40+
41+
/**
42+
* Builder class for creating instances of the MaxStakeRequest class.
43+
*/
44+
public static class Builder {
45+
46+
private final MaxStakeRequest instance = new MaxStakeRequest();
47+
48+
private Builder() {
49+
}
50+
51+
/**
52+
* Builds the MaxStakeRequest instance.
53+
*
54+
* @return The built MaxStakeRequest instance.
55+
*/
56+
public MaxStakeRequest build() {
57+
return this.instance;
58+
}
59+
60+
/**
61+
* Sets the ticket for the request.
62+
*
63+
* @param value The ticket for the request.
64+
* @return The Builder instance.
65+
*/
66+
public Builder setTicket(TicketRequest value) {
67+
this.instance.setTicket(value);
68+
return this;
69+
}
70+
}
71+
}

src/sdk/src/main/java/com/sportradar/mbs/sdk/entities/response/ContentResponse.java

+12-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@
2626
@JsonSubTypes.Type(value = ExtSettlementResponse.class, name = "ext-settlement-reply"),
2727
@JsonSubTypes.Type(value = CashoutAckResponse.class, name = "cashout-ack-reply"),
2828
@JsonSubTypes.Type(value = TicketResponse.class, name = "ticket-reply"),
29-
@JsonSubTypes.Type(value = WithdrawalInformResponse.class, name = "withdrawal-inform-reply")
29+
@JsonSubTypes.Type(value = WithdrawalInformResponse.class, name = "withdrawal-inform-reply"),
30+
@JsonSubTypes.Type(value = MaxStakeResponse.class, name = "max-stake-reply")
3031
})
3132
public class ContentResponse {
3233

@@ -164,4 +165,14 @@ public static TicketResponse.Builder newTicketResponseBuilder() {
164165
public static WithdrawalInformResponse.Builder newWithdrawalInformResponseBuilder() {
165166
return WithdrawalInformResponse.newBuilder();
166167
}
168+
169+
/**
170+
* Creates a new instance of the MaxStakeResponse builder.
171+
*
172+
* @return The MaxStakeResponse builder.
173+
*/
174+
public static MaxStakeResponse.Builder newMaxStakeResponseBuilder() {
175+
return MaxStakeResponse.newBuilder();
176+
}
177+
167178
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
package com.sportradar.mbs.sdk.entities.response;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import com.sportradar.mbs.sdk.entities.common.Bet;
5+
6+
/**
7+
* Represents a response for max stake.
8+
*/
9+
public class MaxStakeResponse extends ContentResponse {
10+
11+
@JsonProperty("code")
12+
private int code;
13+
@JsonProperty("bets")
14+
private Bet[] bets;
15+
@JsonProperty("message")
16+
private String message;
17+
18+
/**
19+
* Gets the code of the response.
20+
*
21+
* @return The code of the response.
22+
*/
23+
public int getCode() {
24+
return this.code;
25+
}
26+
27+
/**
28+
* Sets the code of the response.
29+
*
30+
* @param value The code of the response.
31+
*/
32+
public void setCode(int value) {
33+
this.code = value;
34+
}
35+
36+
/**
37+
* Gets bets.
38+
*
39+
* @return bets.
40+
*/
41+
public Bet[] getBets() {
42+
return this.bets;
43+
}
44+
45+
/**
46+
* Sets bets.
47+
*
48+
* @param value bets.
49+
*/
50+
public void setBets(Bet[] value) {
51+
this.bets = value;
52+
}
53+
54+
/**
55+
* Gets the message.
56+
*
57+
* @return The message.
58+
*/
59+
public String getMessage() {
60+
return this.message;
61+
}
62+
63+
/**
64+
* Sets the message.
65+
*
66+
* @param value The message.
67+
*/
68+
public void setMessage(String value) {
69+
this.message = value;
70+
}
71+
72+
/**
73+
* Creates a new instance of the MaxStakeResponse.Builder class.
74+
*
75+
* @return A new instance of the MaxStakeResponse.Builder class.
76+
*/
77+
public static Builder newBuilder() {
78+
return new Builder();
79+
}
80+
81+
/**
82+
* Represents a builder for creating instances of the MaxStakeResponse class.
83+
*/
84+
public static class Builder {
85+
86+
private final MaxStakeResponse instance = new MaxStakeResponse();
87+
88+
private Builder() {
89+
}
90+
91+
/**
92+
* Builds and returns the MaxStakeResponse instance.
93+
*
94+
* @return The MaxStakeResponse instance.
95+
*/
96+
public MaxStakeResponse build() {
97+
return this.instance;
98+
}
99+
100+
/**
101+
* Sets the code of the response.
102+
*
103+
* @param value The code of the response.
104+
* @return The builder instance.
105+
*/
106+
public Builder setCode(int value) {
107+
this.instance.setCode(value);
108+
return this;
109+
}
110+
111+
/**
112+
* Sets bets.
113+
*
114+
* @param value Bets.
115+
* @return The builder instance.
116+
*/
117+
public Builder setBets(Bet... value) {
118+
this.instance.setBets(value);
119+
return this;
120+
}
121+
122+
/**
123+
* Sets the message.
124+
*
125+
* @param value The message.
126+
* @return The builder instance.
127+
*/
128+
public Builder setMessage(String value) {
129+
this.instance.setMessage(value);
130+
return this;
131+
}
132+
}
133+
}

src/sdk/src/main/java/com/sportradar/mbs/sdk/internal/protocol/TicketProtocolImpl.java

+5
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,9 @@ public CompletableFuture<ExtSettlementResponse> sendExtSettlementAsync(final Ext
6363
public CompletableFuture<ExtSettlementAckResponse> sendExtSettlementAckAsync(final ExtSettlementAckRequest request) {
6464
return engine.execute("ticket-ext-settlement-ack", request, ExtSettlementAckResponse.class);
6565
}
66+
67+
@Override
68+
public CompletableFuture<MaxStakeResponse> sendMaxStakeAsync(MaxStakeRequest request) {
69+
return engine.execute("max-stake", request, MaxStakeResponse.class);
70+
}
6671
}

src/sdk/src/main/java/com/sportradar/mbs/sdk/protocol/TicketProtocol.java

+21
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,19 @@ default ExtSettlementAckResponse sendExtSettlementAck(ExtSettlementAckRequest re
142142
return this.sendExtSettlementAckAsync(request).get();
143143
}
144144

145+
/**
146+
* Sends a max stake request synchronously and returns the corresponding response.
147+
*
148+
* @param request the max stake request to be sent
149+
* @return the max stake response received
150+
* @throws ExecutionException if the execution of the request encounters an exception wrapping the cause exception
151+
* @throws InterruptedException if the execution of the request is interrupted
152+
*/
153+
default MaxStakeResponse sendMaxStake(MaxStakeRequest request)
154+
throws ExecutionException, InterruptedException {
155+
return this.sendMaxStakeAsync(request).get();
156+
}
157+
145158
/**
146159
* Sends a ticket request asynchronously and returns a CompletableFuture representing the response.
147160
*
@@ -221,4 +234,12 @@ default ExtSettlementAckResponse sendExtSettlementAck(ExtSettlementAckRequest re
221234
* @return a CompletableFuture representing the external settlement acknowledgment response
222235
*/
223236
CompletableFuture<ExtSettlementAckResponse> sendExtSettlementAckAsync(ExtSettlementAckRequest request);
237+
238+
/**
239+
* Sends a max stake request asynchronously and returns a CompletableFuture representing the response.
240+
*
241+
* @param request the max stake request to be sent
242+
* @return a CompletableFuture representing the max stake response
243+
*/
244+
CompletableFuture<MaxStakeResponse> sendMaxStakeAsync(MaxStakeRequest request);
224245
}

0 commit comments

Comments
 (0)