Handle "transport not allowed" responses from the registration service

This commit is contained in:
Jon Chambers
2023-05-16 18:54:01 -04:00
committed by Jon Chambers
parent 3e53884979
commit 300ac16cf1
5 changed files with 64 additions and 2 deletions

View File

@@ -157,6 +157,8 @@ public class RegistrationServiceClient implements Managed {
RegistrationServiceSenderException.illegalArgument(response.getError().getMayRetry()));
case SEND_VERIFICATION_CODE_ERROR_TYPE_UNSPECIFIED -> throw new CompletionException(
RegistrationServiceSenderException.unknown(response.getError().getMayRetry()));
case SEND_VERIFICATION_CODE_ERROR_TYPE_TRANSPORT_NOT_ALLOWED -> throw new CompletionException(
new TransportNotAllowedException(buildSessionResponseFromMetadata(response.getSessionMetadata())));
default -> throw new CompletionException(
new RuntimeException("Failed to send verification code: " + response.getError().getErrorType()));

View File

@@ -0,0 +1,14 @@
package org.whispersystems.textsecuregcm.registration;
import org.whispersystems.textsecuregcm.entities.RegistrationServiceSession;
/**
* Indicates that a request to send a verification code failed because the destination number does not support the
* requested transport (e.g. the caller asked to send an SMS to a landline number).
*/
public class TransportNotAllowedException extends RegistrationServiceException {
public TransportNotAllowedException(RegistrationServiceSession registrationServiceSession) {
super(registrationServiceSession);
}
}