Skip to content

Commit

Permalink
Return error codes across bridge in better position (#26)
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisfisher authored Sep 23, 2024
1 parent a44e105 commit 41af5fc
Show file tree
Hide file tree
Showing 17 changed files with 137 additions and 160 deletions.
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ dependencies {

implementation "androidx.browser:browser:1.2.0"

implementation("com.authsignal:authsignal-android:1.0.12")
implementation("com.authsignal:authsignal-android:1.0.13")
}

if (isNewArchitectureEnabled()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,12 @@ public void enroll(String email, Promise promise) {
authsignalEmail
.enrollAsync(email)
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("enrollError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("enrollError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"enroll_error";

promise.reject(errorCode, response.getError());
} else {
EnrollResponse enrollResponse = response.getData();
WritableMap map = Arguments.createMap();
Expand All @@ -87,10 +89,12 @@ public void challenge(Promise promise) {
authsignalEmail
.challengeAsync()
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("challengeError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("challengeError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"challenge_error";

promise.reject(errorCode, response.getError());
} else {
ChallengeResponse challengeResponse = response.getData();
WritableMap map = Arguments.createMap();
Expand All @@ -111,10 +115,12 @@ public void verify(String code, Promise promise) {
authsignalEmail
.verifyAsync(code)
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("verifyError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("verifyError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"verify_error";

promise.reject(errorCode, response.getError());
} else {
VerifyResponse verifyResponse = response.getData();
WritableMap map = Arguments.createMap();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.facebook.react.bridge.ActivityEventListener;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.Callback;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
Expand Down Expand Up @@ -45,10 +46,10 @@ public String getName() {
}

@ReactMethod
public void setToken(String token, Callback callback) {
public void setToken(String token, Promise promise) {
TokenCache.Companion.getShared().setToken(token);

callback.invoke(null, "token_set");
promise.resolve("token_set");
}

@ReactMethod
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,12 @@ public void signUp(String token, String username, String displayName, Promise pr
authsignalPasskey
.signUpAsync(token, username, displayName)
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("signUpError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("signUpError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"sign_up_error";

promise.reject(errorCode, response.getError());
} else {
SignUpResponse signUpResponse = response.getData();
WritableMap map = Arguments.createMap();
Expand All @@ -89,10 +91,12 @@ public void signIn(String action, String token, Promise promise) {
authsignalPasskey
.signInAsync(action, token)
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("signInError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("signInError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"sign_in_error";

promise.reject(errorCode, response.getError());
} else {
SignInResponse signInResponse = response.getData();
WritableMap map = Arguments.createMap();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public void getCredential(Promise promise) {
.getCredentialAsync()
.thenAcceptAsync((response) -> {
if (response.getError() != null) {
promise.reject("getCredentialError", response.getError());
promise.reject("get_credential_error", response.getError());
} else {
PushCredential credential = response.getData();
WritableMap map = Arguments.createMap();
Expand All @@ -82,10 +82,12 @@ public void addCredential(
authsignalPush
.addCredentialAsync(token, null)
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("addCredentialError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("addCredentialError", response.getError());
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"add_credential_error";

if (response.getError() != null) {
promise.reject(errorCode, response.getError());
} else {
promise.resolve(response.getData());
}
Expand All @@ -103,10 +105,12 @@ public void removeCredential(Promise promise) {
authsignalPush
.removeCredentialAsync()
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("removeCredentialError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("removeCredentialError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"remove_credential_error";

promise.reject(errorCode, response.getError());
} else {
promise.resolve(response.getData());
}
Expand All @@ -124,10 +128,12 @@ public void getChallenge(Promise promise) {
authsignalPush
.getChallengeAsync()
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("getChallengeError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("getChallengeError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"get_challenge_error";

promise.reject(errorCode, response.getError());
} else {
PushChallenge challenge = response.getData();

Expand Down Expand Up @@ -163,10 +169,12 @@ public void updateChallenge(
authsignalPush
.updateChallengeAsync(challengeId, approved, verificationCode)
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("updateChallengeError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("updateChallengeError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"update_challenge_error";

promise.reject(errorCode, response.getError());
} else {
promise.resolve(response.getData());
}
Expand Down
30 changes: 18 additions & 12 deletions android/src/main/java/com/authsignal/react/AuthsignalSMSModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,12 @@ public void enroll(String phoneNumber, Promise promise) {
authsignalSMS
.enrollAsync(phoneNumber)
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("enrollError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("enrollError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"enroll_error";

promise.reject(errorCode, response.getError());
} else {
EnrollResponse enrollResponse = response.getData();
WritableMap map = Arguments.createMap();
Expand All @@ -87,10 +89,12 @@ public void challenge(Promise promise) {
authsignalSMS
.challengeAsync()
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("challengeError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("challengeError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"challenge_error";

promise.reject(errorCode, response.getError());
} else {
ChallengeResponse challengeResponse = response.getData();
WritableMap map = Arguments.createMap();
Expand All @@ -111,10 +115,12 @@ public void verify(String code, Promise promise) {
authsignalSMS
.verifyAsync(code)
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("verifyError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("verifyError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"verify_error";

promise.reject(errorCode, response.getError());
} else {
VerifyResponse verifyResponse = response.getData();
WritableMap map = Arguments.createMap();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,12 @@ public void enroll(Promise promise) {
authsignalTOTP
.enrollAsync()
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("enrollError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("enrollError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"enroll_error";

promise.reject(errorCode, response.getError());
} else {
EnrollTOTPResponse enrollResponse = response.getData();
WritableMap map = Arguments.createMap();
Expand All @@ -90,10 +92,12 @@ public void verify(String code, Promise promise) {
authsignalTOTP
.verifyAsync(code)
.thenAcceptAsync(response -> {
if (response.getErrorType() != null) {
promise.reject("verifyError", response.getErrorType());
} else if (response.getError() != null) {
promise.reject("verifyError", response.getError());
if (response.getError() != null) {
String errorCode = response.getErrorType() != null ?
response.getErrorType() :
"verify_error";

promise.reject(errorCode, response.getError());
} else {
VerifyResponse verifyResponse = response.getData();
WritableMap map = Arguments.createMap();
Expand Down
18 changes: 6 additions & 12 deletions ios/AuthsignalEmailModule.swift
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,8 @@ class AuthsignalEmailModule: NSObject {
Task.init {
let response = await authsignal!.enroll(email: emailStr)

if (response.errorCode != nil) {
reject("enrollError", response.errorCode, nil)
} else if (response.error != nil) {
reject("enrollError", response.error, nil)
if (response.error != nil) {
reject(response.errorCode ?? "enroll_error", response.error, nil)
} else {
let enrollResponse: [String: String?] = [
"userAuthenticatorId": response.data!.userAuthenticatorId,
Expand All @@ -62,10 +60,8 @@ class AuthsignalEmailModule: NSObject {
Task.init {
let response = await authsignal!.challenge()

if (response.errorCode != nil) {
reject("challengeError", response.errorCode, nil)
} else if (response.error != nil) {
reject("challengeError", response.error, nil)
if (response.error != nil) {
reject(response.errorCode ?? "challenge_error", response.error, nil)
} else {
let challengeResponse: [String: String?] = [
"challengeId": response.data!.challengeId,
Expand All @@ -91,10 +87,8 @@ class AuthsignalEmailModule: NSObject {
Task.init {
let response = await authsignal!.verify(code: codeStr)

if (response.errorCode != nil) {
reject("verifyError", response.errorCode, nil)
} else if (response.error != nil) {
reject("verifyError", response.error, nil)
if (response.error != nil) {
reject(response.errorCode ?? "verify_error", response.error, nil)
} else {
let verifyResponse: [String: Any?] = [
"isVerified": response.data!.isVerified,
Expand Down
12 changes: 4 additions & 8 deletions ios/AuthsignalPasskeyModule.swift
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,8 @@ class AuthsignalPasskeyModule: NSObject {
Task.init {
let response = await authsignal!.signUp(token: tokenStr, username: usernameStr, displayName: displayNameStr)

if (response.errorCode != nil) {
reject("signUpError", response.errorCode, nil)
} else if (response.error != nil) {
reject("signUpError", response.error, nil)
if (response.error != nil) {
reject(response.errorCode ?? "sign_up_error", response.error, nil)
} else {
let signUpResponse: [String: String?] = [
"token": response.data!.token,
Expand Down Expand Up @@ -78,10 +76,8 @@ class AuthsignalPasskeyModule: NSObject {
preferImmediatelyAvailableCredentials: preferImmediatelyAvailableCredentials
)

if (response.errorCode != nil) {
reject("signInError", response.errorCode, nil)
} else if (response.error != nil) {
reject("signInError", response.error, nil)
if (response.error != nil) {
reject(response.errorCode ?? "sign_in_error", response.error, nil)
} else {
let signInResponse: [String: Any?] = [
"isVerified": response.data!.isVerified,
Expand Down
24 changes: 8 additions & 16 deletions ios/AuthsignalPushModule.swift
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,8 @@ class AuthsignalPushModule: NSObject {
Task.init {
let response = await authsignal.addCredential(token: tokenStr, keychainAccess: keychainAccess)

if let errorCode = response.errorCode {
reject("addCredentialError", errorCode, nil)
} else if let error = response.error {
reject("addCredentialError", error, nil)
if let error = response.error {
reject(response.errorCode ?? "add_credential_error", error, nil)
} else {
resolve(response.data)
}
Expand All @@ -87,10 +85,8 @@ class AuthsignalPushModule: NSObject {
Task.init {
let response = await authsignal.removeCredential()

if let errorCode = response.errorCode {
reject("removeCredentialError", errorCode, nil)
} else if let error = response.error {
reject("removeCredentialError", error, nil)
if let error = response.error {
reject(response.errorCode ?? "remove_credential_error", error, nil)
} else {
resolve(response.data)
}
Expand All @@ -109,10 +105,8 @@ class AuthsignalPushModule: NSObject {
Task.init {
let response = await authsignal.getChallenge()

if let errorCode = response.errorCode {
reject("getChallengeError", errorCode, nil)
} else if let error = response.error {
reject("getChallengeError", error, nil)
if let error = response.error {
reject(response.errorCode ?? "get_challenge_error", error, nil)
} else if let data = response.data as? PushChallenge {
let challenge: [String: String?] = [
"challengeId": data.challengeId,
Expand Down Expand Up @@ -153,10 +147,8 @@ class AuthsignalPushModule: NSObject {
verificationCode: code
)

if let errorCode = response.errorCode {
reject("updateChallengeError", errorCode, nil)
} else if let error = response.error {
reject("updateChallengeError", error, nil)
if let error = response.error {
reject(response.errorCode ?? "update_challenge_error", error, nil)
} else {
resolve(response.data)
}
Expand Down
Loading

0 comments on commit 41af5fc

Please sign in to comment.