diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManager.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManager.java index 8f71ac863..2acb2c928 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManager.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManager.java @@ -40,7 +40,6 @@ import software.amazon.awssdk.services.dynamodb.model.UpdateItemRequest; public class IssuedReceiptsManager { public static final String KEY_PROCESSOR_ITEM_ID = "A"; // S (HashKey) - public static final String KEY_ISSUED_RECEIPT_TAG = "B"; // B public static final String KEY_EXPIRATION = "E"; // N public static final String KEY_ISSUED_RECEIPT_TAG_SET = "T"; // BS @@ -86,13 +85,9 @@ public class IssuedReceiptsManager { .key(Map.of(KEY_PROCESSOR_ITEM_ID, key)) .conditionExpression("attribute_not_exists(#key) OR contains(#tags, :tag) OR size(#tags) < :maxTags") .returnValues(ReturnValue.NONE) - .updateExpression("SET " - + "#tag = if_not_exists(#tag, :tag), " - + "#exp = if_not_exists(#exp, :exp) " - + "ADD #tags :singletonTag") + .updateExpression("SET #exp = if_not_exists(#exp, :exp) ADD #tags :singletonTag") .expressionAttributeNames(Map.of( "#key", KEY_PROCESSOR_ITEM_ID, - "#tag", KEY_ISSUED_RECEIPT_TAG, "#tags", KEY_ISSUED_RECEIPT_TAG_SET, "#exp", KEY_EXPIRATION)) .expressionAttributeValues(Map.of( diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManagerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManagerTest.java index e2fe7d569..740dc8fa8 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManagerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/storage/IssuedReceiptsManagerTest.java @@ -73,7 +73,7 @@ class IssuedReceiptsManagerTest { .stream() .map(SdkBytes::asByteArray) .collect(Collectors.toSet()); - assertThat(tagSet).containsExactly(item.get(IssuedReceiptsManager.KEY_ISSUED_RECEIPT_TAG).b().asByteArray()); + assertThat(tagSet).containsExactly(issuedReceiptsManager.generateIssuedReceiptTag(receiptCredentialRequest)); // same request should succeed future = issuedReceiptsManager.recordIssuance("item-1", PaymentProvider.STRIPE, receiptCredentialRequest,