Include media TTL in backup config
This commit is contained in:
parent
776c147ea4
commit
fc6075f19c
|
@ -6,6 +6,7 @@
|
||||||
package org.whispersystems.textsecuregcm.configuration;
|
package org.whispersystems.textsecuregcm.configuration;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import java.time.Duration;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
@ -30,6 +31,7 @@ public sealed interface SubscriptionLevelConfiguration permits
|
||||||
|
|
||||||
record Backup(
|
record Backup(
|
||||||
@JsonProperty("playProductId") @NotEmpty String playProductId,
|
@JsonProperty("playProductId") @NotEmpty String playProductId,
|
||||||
|
@JsonProperty("mediaTtl") @NotNull Duration mediaTtl,
|
||||||
@JsonProperty("prices") @Valid Map<@NotEmpty String, @NotNull @Valid SubscriptionPriceConfiguration> prices)
|
@JsonProperty("prices") @Valid Map<@NotEmpty String, @NotNull @Valid SubscriptionPriceConfiguration> prices)
|
||||||
implements SubscriptionLevelConfiguration {}
|
implements SubscriptionLevelConfiguration {}
|
||||||
|
|
||||||
|
|
|
@ -206,7 +206,10 @@ public class SubscriptionController {
|
||||||
.entrySet().stream()
|
.entrySet().stream()
|
||||||
.collect(Collectors.toMap(
|
.collect(Collectors.toMap(
|
||||||
e -> String.valueOf(e.getKey()),
|
e -> String.valueOf(e.getKey()),
|
||||||
e -> new BackupLevelConfiguration(BackupManager.MAX_TOTAL_BACKUP_MEDIA_BYTES, e.getValue().playProductId())));
|
e -> new BackupLevelConfiguration(
|
||||||
|
BackupManager.MAX_TOTAL_BACKUP_MEDIA_BYTES,
|
||||||
|
e.getValue().playProductId(),
|
||||||
|
e.getValue().mediaTtl().toDays())));
|
||||||
|
|
||||||
return new GetSubscriptionConfigurationResponse(buildCurrencyConfiguration(), donationLevels,
|
return new GetSubscriptionConfigurationResponse(buildCurrencyConfiguration(), donationLevels,
|
||||||
new BackupConfiguration(backupLevels, subscriptionConfiguration.getbackupFreeTierMediaDuration().toDays()),
|
new BackupConfiguration(backupLevels, subscriptionConfiguration.getbackupFreeTierMediaDuration().toDays()),
|
||||||
|
@ -517,7 +520,9 @@ public class SubscriptionController {
|
||||||
@Schema(description = "The amount of media storage in bytes that a paying subscriber may store")
|
@Schema(description = "The amount of media storage in bytes that a paying subscriber may store")
|
||||||
long storageAllowanceBytes,
|
long storageAllowanceBytes,
|
||||||
@Schema(description = "The play billing productID associated with this backup level")
|
@Schema(description = "The play billing productID associated with this backup level")
|
||||||
String playProductId) {}
|
String playProductId,
|
||||||
|
@Schema(description = "The duration, in days, for which your backed up media is retained on the server after you stop refreshing with a paid credential")
|
||||||
|
long mediaTtlDays) {}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
@Path("/configuration")
|
@Path("/configuration")
|
||||||
|
|
|
@ -1189,6 +1189,7 @@ class SubscriptionControllerTest {
|
||||||
assertThat(response.backup().levels()).containsOnlyKeys("201").extractingByKey("201").satisfies(configuration -> {
|
assertThat(response.backup().levels()).containsOnlyKeys("201").extractingByKey("201").satisfies(configuration -> {
|
||||||
assertThat(configuration.storageAllowanceBytes()).isEqualTo(BackupManager.MAX_TOTAL_BACKUP_MEDIA_BYTES);
|
assertThat(configuration.storageAllowanceBytes()).isEqualTo(BackupManager.MAX_TOTAL_BACKUP_MEDIA_BYTES);
|
||||||
assertThat(configuration.playProductId()).isEqualTo("testPlayProductId");
|
assertThat(configuration.playProductId()).isEqualTo("testPlayProductId");
|
||||||
|
assertThat(configuration.mediaTtlDays()).isEqualTo(40);
|
||||||
});
|
});
|
||||||
assertThat(response.backup().freeTierMediaDays()).isEqualTo(30);
|
assertThat(response.backup().freeTierMediaDays()).isEqualTo(30);
|
||||||
|
|
||||||
|
@ -1244,6 +1245,7 @@ class SubscriptionControllerTest {
|
||||||
backupLevels:
|
backupLevels:
|
||||||
201:
|
201:
|
||||||
playProductId: testPlayProductId
|
playProductId: testPlayProductId
|
||||||
|
mediaTtl: P40D
|
||||||
prices:
|
prices:
|
||||||
usd:
|
usd:
|
||||||
amount: '5'
|
amount: '5'
|
||||||
|
|
|
@ -370,6 +370,7 @@ subscription: # configuration for Stripe subscriptions
|
||||||
backupLevels:
|
backupLevels:
|
||||||
201:
|
201:
|
||||||
playProductId: EXAMPLE
|
playProductId: EXAMPLE
|
||||||
|
mediaTtl: P30D
|
||||||
prices: {}
|
prices: {}
|
||||||
levels:
|
levels:
|
||||||
500:
|
500:
|
||||||
|
|
Loading…
Reference in New Issue