X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/380c892e24fe2d60cd8963855511c15ca9858e7b..276ecef3009baecb740f23d53ddaa81f487d57a2:/src/main/java/org/asamk/signal/dbus/DbusSignalControlImpl.java diff --git a/src/main/java/org/asamk/signal/dbus/DbusSignalControlImpl.java b/src/main/java/org/asamk/signal/dbus/DbusSignalControlImpl.java index 2d211444..5c4d807e 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusSignalControlImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusSignalControlImpl.java @@ -7,10 +7,12 @@ import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.MultiAccountManager; import org.asamk.signal.manager.ProvisioningManager; import org.asamk.signal.manager.RegistrationManager; -import org.asamk.signal.manager.UserAlreadyExists; import org.asamk.signal.manager.api.CaptchaRequiredException; import org.asamk.signal.manager.api.IncorrectPinException; +import org.asamk.signal.manager.api.NonNormalizedPhoneNumberException; import org.asamk.signal.manager.api.PinLockedException; +import org.asamk.signal.manager.api.RateLimitException; +import org.asamk.signal.manager.api.UserAlreadyExistsException; import org.freedesktop.dbus.DBusPath; import java.io.IOException; @@ -58,9 +60,14 @@ public class DbusSignalControlImpl implements org.asamk.SignalControl { } try (final RegistrationManager registrationManager = c.getNewRegistrationManager(number)) { registrationManager.register(voiceVerification, captcha); + } catch (RateLimitException e) { + String message = "Rate limit reached"; + throw new SignalControl.Error.Failure(message); } catch (CaptchaRequiredException e) { String message = captcha == null ? "Captcha required for verification." : "Invalid captcha given."; throw new SignalControl.Error.RequiresCaptcha(message); + } catch (NonNormalizedPhoneNumberException e) { + throw new Error.InvalidNumber(e.getMessage()); } catch (OverlappingFileLockException e) { throw new SignalControl.Error.Failure("Account is already in use"); } catch (IOException e) { @@ -100,7 +107,7 @@ public class DbusSignalControlImpl implements org.asamk.SignalControl { final ProvisioningManager provisioningManager = c.getProvisioningManagerFor(deviceLinkUri); try { provisioningManager.finishDeviceLink(newDeviceName); - } catch (IOException | TimeoutException | UserAlreadyExists e) { + } catch (IOException | TimeoutException | UserAlreadyExistsException e) { e.printStackTrace(); } }); @@ -127,7 +134,7 @@ public class DbusSignalControlImpl implements org.asamk.SignalControl { try { final var provisioningManager = c.getProvisioningManagerFor(new URI(deviceLinkUri)); return provisioningManager.finishDeviceLink(newDeviceName); - } catch (TimeoutException | IOException | UserAlreadyExists | URISyntaxException e) { + } catch (TimeoutException | IOException | UserAlreadyExistsException | URISyntaxException e) { throw new SignalControl.Error.Failure(e.getClass().getSimpleName() + " " + e.getMessage()); } }