Address mailbox pairing backend review feedback

This commit is contained in:
Torsten Grote
2022-02-18 09:50:38 -03:00
parent 88c54ed3b0
commit 4a46b13e9d
4 changed files with 15 additions and 16 deletions

View File

@@ -51,8 +51,8 @@ public abstract class MailboxPairingState {
}
}
public static class AssertionError extends MailboxPairingState {
public AssertionError(String qrCodePayload) {
public static class UnexpectedError extends MailboxPairingState {
public UnexpectedError(String qrCodePayload) {
super(qrCodePayload);
}
}

View File

@@ -98,30 +98,28 @@ class MailboxPairingTaskImpl implements MailboxPairingTask {
} catch (IOException e) {
onMailboxError(e, new MailboxPairingState.ConnectionError(payload));
} catch (ApiException | DbException e) {
onMailboxError(e, new MailboxPairingState.AssertionError(payload));
onMailboxError(e, new MailboxPairingState.UnexpectedError(payload));
}
}
private void pairMailbox() throws IOException, ApiException, DbException {
MailboxProperties mailboxProperties = decodeQrCodePayload(payload);
synchronized (lock) {
this.state = new MailboxPairingState.Pairing(payload);
notifyObservers();
}
setState(new MailboxPairingState.Pairing(payload));
MailboxAuthToken ownerToken = api.setup(mailboxProperties);
MailboxProperties ownerProperties = new MailboxProperties(
mailboxProperties.getBaseUrl(), ownerToken, true);
db.transaction(false, txn -> mailboxSettingsManager
.setOwnMailboxProperties(txn, ownerProperties));
synchronized (lock) {
this.state = new MailboxPairingState.Paired();
notifyObservers();
}
setState(new MailboxPairingState.Paired());
// TODO already do mailboxSettingsManager.setOwnMailboxStatus() ?
}
private void onMailboxError(Exception e, MailboxPairingState state) {
logException(LOG, WARNING, e);
setState(state);
}
private void setState(MailboxPairingState state) {
synchronized (lock) {
this.state = state;
notifyObservers();

View File

@@ -3,6 +3,7 @@ package org.briarproject.bramble.plugin.file;
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
import org.briarproject.bramble.api.plugin.file.RemovableDriveTask;
@Deprecated // We can simply remove tasks when they finish
@NotNullByDefault
interface RemovableDriveTaskRegistry {

View File

@@ -42,7 +42,7 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase {
new MailboxPairingTaskFactoryImpl(executor, db, crypto, api,
mailboxSettingsManager);
private final String onion = getRandomString(64);
private final String onion = getRandomString(56);
private final byte[] onionBytes = getRandomBytes(32);
private final String onionAddress = "http://" + onion + ".onion";
private final MailboxAuthToken setupToken =
@@ -73,8 +73,8 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase {
assertTrue(state instanceof MailboxPairingState.InvalidQrCode)
);
MailboxPairingTask task2 =
factory.createPairingTask(getRandomString(65));
String goodLength = "00" + getRandomString(63);
MailboxPairingTask task2 = factory.createPairingTask(goodLength);
task2.run();
task2.addObserver(state ->
assertTrue(state instanceof MailboxPairingState.InvalidQrCode)
@@ -123,7 +123,7 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase {
@Test
public void testMailboxApiException() throws Exception {
testApiException(new MailboxApi.ApiException(),
MailboxPairingState.AssertionError.class);
MailboxPairingState.UnexpectedError.class);
}
@Test
@@ -165,7 +165,7 @@ public class MailboxPairingTaskImplTest extends BrambleMockTestCase {
MailboxPairingTask task = factory.createPairingTask(validPayload);
task.run();
task.addObserver(state -> assertEquals(state.getClass(),
MailboxPairingState.AssertionError.class));
MailboxPairingState.UnexpectedError.class));
}
private String getValidPayload() {