Skip to content

Commit 3ec1721

Browse files
authored
feat(PAPI-29): add 'version' support to Item (#173)
1 parent 06922ae commit 3ec1721

7 files changed

Lines changed: 14 additions & 5 deletions

File tree

saga-sdk-java/src/main/java/games/mythical/saga/sdk/client/executor/SagaItemExecutor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ void updateItem(String inventoryId,
1212
Long tokenId,
1313
String metadataUrl,
1414
String traceId,
15-
ItemState itemState) throws Exception;
15+
ItemState itemState,
16+
Long version) throws Exception;
1617

1718
void updateItems(List<SagaItemUpdate> updates, String traceId) throws Exception;
1819

saga-sdk-java/src/main/java/games/mythical/saga/sdk/client/model/SagaItem.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public class SagaItem {
2828
@DtoExclude
2929
private Instant updatedAt;
3030
private String state;
31+
private long version;
3132

3233
public static SagaItem fromProto(ItemProto proto) {
3334
var user = ProtoUtil.toDto(proto, SagaItem.class);

saga-sdk-java/src/main/java/games/mythical/saga/sdk/client/model/SagaItemUpdate.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class SagaItemUpdate {
1919
private String oauthId;
2020
private long tokenId;
2121
private String metadataUrl;
22+
private long version;
2223
@DtoExclude
2324
private ItemState itemState;
2425

saga-sdk-java/src/main/java/games/mythical/saga/sdk/client/observer/SagaStatusUpdateObserver.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,8 @@ private void handleItemUpdate(ItemUpdate update, String traceId) throws Exceptio
229229
message.getTokenId(),
230230
message.getMetadataUrl(),
231231
traceId,
232-
message.getItemState()
232+
message.getItemState(),
233+
message.getVersion()
233234
);
234235
} else {
235236
final var updates = update.getStatusUpdates().getStatusUpdatesList().stream()

saga-sdk-java/src/test/java/games/mythical/saga/sdk/client/SagaItemClientTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ public void getItem() throws Exception {
7979
.setMetadataUrl("metadata-url")
8080
.setCreatedAt(Timestamps.fromMillis(Instant.now().toEpochMilli() - 86400))
8181
.setUpdatedAt(Timestamps.fromMillis(Instant.now().toEpochMilli()))
82+
.setVersion(1L)
8283
.build();
8384
when(mockServiceBlockingStub.getItem(any())).thenReturn(expectedResponse);
8485
var itemResponse = itemClient.getItem(INVENTORY_ID);

saga-sdk-java/src/test/java/games/mythical/saga/sdk/client/executor/MockItemExecutor.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class MockItemExecutor extends MockBaseExecutor implements SagaItemExecut
1717
private String metadataUri;
1818
private String traceId;
1919
private ItemState itemState;
20+
private Long version;
2021

2122
@Override
2223
public void updateItem(String inventoryId,
@@ -25,14 +26,16 @@ public void updateItem(String inventoryId,
2526
Long tokenId,
2627
String metadataUrl,
2728
String traceId,
28-
ItemState itemState) throws Exception {
29+
ItemState itemState,
30+
Long version) throws Exception {
2931
this.inventoryId = inventoryId;
3032
this.itemTypeId = itemTypeId;
3133
this.oauthId = oauthId;
3234
this.tokenId = tokenId;
3335
this.metadataUri = metadataUrl;
3436
this.traceId = traceId;
3537
this.itemState = itemState;
38+
this.version = version;
3639
}
3740

3841
@Override
@@ -45,7 +48,8 @@ public void updateItems(List<SagaItemUpdate> updates, String traceId) throws Exc
4548
update.getTokenId(),
4649
update.getMetadataUrl(),
4750
traceId,
48-
update.getItemState()
51+
update.getItemState(),
52+
update.getVersion()
4953
);
5054
}
5155

0 commit comments

Comments
 (0)