Hide model validation methods in API docs
This commit is contained in:
parent
1a7a446150
commit
ca6e5fb0a8
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
package org.whispersystems.textsecuregcm.configuration;
|
package org.whispersystems.textsecuregcm.configuration;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import jakarta.validation.constraints.AssertTrue;
|
import jakarta.validation.constraints.AssertTrue;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
@ -57,6 +58,7 @@ public record CloudflareTurnConfiguration(@NotNull SecretString apiToken,
|
||||||
}
|
}
|
||||||
|
|
||||||
@AssertTrue
|
@AssertTrue
|
||||||
|
@Schema(hidden = true)
|
||||||
public boolean isClientTtlShorterThanRequestedTtl() {
|
public boolean isClientTtlShorterThanRequestedTtl() {
|
||||||
return clientCredentialTtl.compareTo(requestedCredentialTtl) <= 0;
|
return clientCredentialTtl.compareTo(requestedCredentialTtl) <= 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.AssertTrue;
|
import jakarta.validation.constraints.AssertTrue;
|
||||||
import jakarta.validation.constraints.Size;
|
import jakarta.validation.constraints.Size;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
@ -137,6 +138,7 @@ public class AccountAttributes {
|
||||||
}
|
}
|
||||||
|
|
||||||
@AssertTrue
|
@AssertTrue
|
||||||
|
@Schema(hidden = true)
|
||||||
public boolean isEachRegistrationIdValid() {
|
public boolean isEachRegistrationIdValid() {
|
||||||
return validRegistrationId(registrationId) && validRegistrationId(phoneNumberIdentityRegistrationId);
|
return validRegistrationId(registrationId) && validRegistrationId(phoneNumberIdentityRegistrationId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,6 +76,7 @@ public record ChangeNumberRequest(
|
||||||
}
|
}
|
||||||
|
|
||||||
@AssertTrue
|
@AssertTrue
|
||||||
|
@Schema(hidden = true)
|
||||||
public boolean isEachPniRegistrationIdValid() {
|
public boolean isEachPniRegistrationIdValid() {
|
||||||
return pniRegistrationIds == null || pniRegistrationIds.values().stream().allMatch(RegistrationIdValidator::validRegistrationId);
|
return pniRegistrationIds == null || pniRegistrationIds.values().stream().allMatch(RegistrationIdValidator::validRegistrationId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
|
||||||
import com.google.protobuf.ByteString;
|
import com.google.protobuf.ByteString;
|
||||||
import com.webauthn4j.converter.jackson.deserializer.json.ByteArrayBase64Deserializer;
|
import com.webauthn4j.converter.jackson.deserializer.json.ByteArrayBase64Deserializer;
|
||||||
import io.micrometer.core.instrument.Metrics;
|
import io.micrometer.core.instrument.Metrics;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.AssertTrue;
|
import jakarta.validation.constraints.AssertTrue;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
@ -69,6 +70,7 @@ public record IncomingMessage(int type,
|
||||||
}
|
}
|
||||||
|
|
||||||
@AssertTrue
|
@AssertTrue
|
||||||
|
@Schema(hidden = true)
|
||||||
public boolean isValidEnvelopeType() {
|
public boolean isValidEnvelopeType() {
|
||||||
if (type() == MessageProtos.Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE ||
|
if (type() == MessageProtos.Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE ||
|
||||||
MessageProtos.Envelope.Type.forNumber(type()) == null) {
|
MessageProtos.Envelope.Type.forNumber(type()) == null) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ import com.fasterxml.jackson.annotation.JsonCreator;
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import io.micrometer.core.instrument.Counter;
|
import io.micrometer.core.instrument.Counter;
|
||||||
import io.micrometer.core.instrument.Metrics;
|
import io.micrometer.core.instrument.Metrics;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import jakarta.validation.constraints.AssertTrue;
|
import jakarta.validation.constraints.AssertTrue;
|
||||||
import jakarta.validation.constraints.Max;
|
import jakarta.validation.constraints.Max;
|
||||||
|
@ -46,6 +47,7 @@ public record IncomingMessageList(@NotNull
|
||||||
}
|
}
|
||||||
|
|
||||||
@AssertTrue
|
@AssertTrue
|
||||||
|
@Schema(hidden = true)
|
||||||
public boolean hasNoDuplicateRecipients() {
|
public boolean hasNoDuplicateRecipients() {
|
||||||
final boolean valid = messages.stream()
|
final boolean valid = messages.stream()
|
||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
|
|
|
@ -54,6 +54,7 @@ public record KeyTransparencySearchRequest(
|
||||||
@Positive long distinguishedTreeHeadSize
|
@Positive long distinguishedTreeHeadSize
|
||||||
) {
|
) {
|
||||||
@AssertTrue
|
@AssertTrue
|
||||||
|
@Schema(hidden = true)
|
||||||
public boolean isUnidentifiedAccessKeyProvidedWithE164() {
|
public boolean isUnidentifiedAccessKeyProvidedWithE164() {
|
||||||
return unidentifiedAccessKey.isPresent() == e164.isPresent();
|
return unidentifiedAccessKey.isPresent() == e164.isPresent();
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,7 @@ public record LinkDeviceRequest(@Schema(requiredMode = Schema.RequiredMode.REQUI
|
||||||
}
|
}
|
||||||
|
|
||||||
@AssertTrue
|
@AssertTrue
|
||||||
|
@Schema(hidden = true)
|
||||||
public boolean hasExactlyOneMessageDeliveryChannel() {
|
public boolean hasExactlyOneMessageDeliveryChannel() {
|
||||||
if (accountAttributes.getFetchesMessages()) {
|
if (accountAttributes.getFetchesMessages()) {
|
||||||
return deviceActivationRequest().apnToken().isEmpty() && deviceActivationRequest().gcmToken().isEmpty();
|
return deviceActivationRequest().apnToken().isEmpty() && deviceActivationRequest().gcmToken().isEmpty();
|
||||||
|
|
|
@ -7,6 +7,7 @@ package org.whispersystems.textsecuregcm.entities;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.AssertTrue;
|
import jakarta.validation.constraints.AssertTrue;
|
||||||
import jakarta.ws.rs.ClientErrorException;
|
import jakarta.ws.rs.ClientErrorException;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
|
@ -25,6 +26,7 @@ public interface PhoneVerificationRequest {
|
||||||
|
|
||||||
// for the @AssertTrue to work with bean validation, method name must follow 'isSmth()'/'getSmth()' naming convention
|
// for the @AssertTrue to work with bean validation, method name must follow 'isSmth()'/'getSmth()' naming convention
|
||||||
@AssertTrue
|
@AssertTrue
|
||||||
|
@Schema(hidden = true)
|
||||||
default boolean isValid() {
|
default boolean isValid() {
|
||||||
// checking that exactly one of sessionId/recoveryPassword is non-empty
|
// checking that exactly one of sessionId/recoveryPassword is non-empty
|
||||||
return isNotBlank(sessionId()) ^ (recoveryPassword() != null && recoveryPassword().length > 0);
|
return isNotBlank(sessionId()) ^ (recoveryPassword() != null && recoveryPassword().length > 0);
|
||||||
|
|
|
@ -111,6 +111,7 @@ public record RegistrationRequest(@Schema(requiredMode = Schema.RequiredMode.NOT
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
@AssertTrue
|
@AssertTrue
|
||||||
|
@Schema(hidden = true)
|
||||||
boolean hasExactlyOneMessageDeliveryChannel() {
|
boolean hasExactlyOneMessageDeliveryChannel() {
|
||||||
if (accountAttributes.getFetchesMessages()) {
|
if (accountAttributes.getFetchesMessages()) {
|
||||||
return deviceActivationRequest().apnToken().isEmpty() && deviceActivationRequest().gcmToken().isEmpty();
|
return deviceActivationRequest().apnToken().isEmpty() && deviceActivationRequest().gcmToken().isEmpty();
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
package org.whispersystems.textsecuregcm.limits;
|
package org.whispersystems.textsecuregcm.limits;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import jakarta.validation.constraints.AssertTrue;
|
import jakarta.validation.constraints.AssertTrue;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
|
|
||||||
|
@ -15,6 +16,7 @@ public record RateLimiterConfig(int bucketSize, Duration permitRegenerationDurat
|
||||||
}
|
}
|
||||||
|
|
||||||
@AssertTrue
|
@AssertTrue
|
||||||
|
@Schema(hidden = true)
|
||||||
public boolean hasPositiveRegenerationRate() {
|
public boolean hasPositiveRegenerationRate() {
|
||||||
try {
|
try {
|
||||||
return permitRegenerationDuration.toNanos() > 0;
|
return permitRegenerationDuration.toNanos() > 0;
|
||||||
|
|
Loading…
Reference in New Issue