Skip to content

Commit

Permalink
New response models for signUp/signIn (#17)
Browse files Browse the repository at this point in the history
* New response models for signUp/signIn

* wip

* Fix models namespace

* wip
  • Loading branch information
chrisfisher authored Aug 2, 2024
1 parent 60df3f4 commit 120a6a1
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 11 deletions.
4 changes: 2 additions & 2 deletions android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,8 @@ dependencies {

implementation "androidx.browser:browser:1.2.0"

implementation("com.authsignal:authsignal-push-android:0.2.10")
implementation("com.authsignal:authsignal-passkey-android:0.1.10")
implementation("com.authsignal:authsignal-push-android:0.2.12")
implementation("com.authsignal:authsignal-passkey-android:0.2.1")
}

if (isNewArchitectureEnabled()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@
import androidx.annotation.NonNull;

import com.authsignal.passkey.AuthsignalPasskey;
import com.authsignal.passkey.models.*;
import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.WritableMap;

import java.util.HashMap;
import java.util.Map;
Expand Down Expand Up @@ -65,7 +68,10 @@ public void signUp(String token, String userName, String displayName, Promise pr
if (response.getError() != null) {
promise.reject("signUp error", response.getError());
} else {
promise.resolve(response.getData());
SignUpResponse signUpResponse = response.getData();
WritableMap map = Arguments.createMap();
map.putString("token", signUpResponse.getToken());
promise.resolve(map);
}
});
} else {
Expand All @@ -84,7 +90,15 @@ public void signIn(String action, String token, Promise promise) {
if (response.getError() != null) {
promise.reject("signIn error", response.getError());
} else {
promise.resolve(response.getData());
SignInResponse signInResponse = response.getData();
WritableMap map = Arguments.createMap();
map.putBoolean("isVerified", signInResponse.isVerified());
map.putString("token", signInResponse.getToken());
map.putString("userId", signInResponse.getUserId());
map.putString("userAuthenticatorId", signInResponse.getUserAuthenticatorId());
map.putString("userName", signInResponse.getUserName());
map.putString("userDisplayName", signInResponse.getUserDisplayName());
promise.resolve(map);
}
});
} else {
Expand Down
17 changes: 15 additions & 2 deletions ios/AuthsignalPasskeyModule.swift
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,11 @@ class AuthsignalPasskeyModule: NSObject {
if (response.error != nil) {
reject("signUp error", response.error, nil)
} else {
resolve(response.data)
let signUpResponse: [String: String?] = [
"token": response.data!.accessToken,
]

resolve(signUpResponse)
}
}
}
Expand All @@ -69,7 +73,16 @@ class AuthsignalPasskeyModule: NSObject {
if (response.error != nil) {
reject("signIn error", response.error, nil)
} else {
resolve(response.data)
let signInResponse: [String: String?] = [
"isVerified": response.data!.isVerified,
"token": response.data!.accessToken,
"userId": response.data!.userId,
"userAuthenticatorId": response.data!.userAuthenticatorId,
"userName": response.data!.username,
"userDisplayName": response.data!.userDisplayName,
]

resolve(signInResponse)
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-authsignal",
"version": "0.3.10",
"version": "0.4.0",
"description": "The official Authsignal React Native library.",
"main": "lib/commonjs/index",
"module": "lib/module/index",
Expand Down
2 changes: 1 addition & 1 deletion react-native-authsignal.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source_files = "ios/**/*.{h,m,mm,swift}"

s.dependency "React-Core"
s.dependency 'Authsignal', '0.2.5'
s.dependency 'Authsignal', '0.3.0'

# Don't install the dependencies when we run `pod install` in the old architecture.
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
Expand Down
10 changes: 7 additions & 3 deletions src/passkey.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import { NativeModules, Platform } from 'react-native';
import { LINKING_ERROR } from './error';
import type { AuthsignalResponse } from './types';
import type {
AuthsignalResponse,
SignInResponse,
SignUpResponse,
} from './types';

interface ConstructorArgs {
tenantID: string;
Expand Down Expand Up @@ -49,7 +53,7 @@ export class AuthsignalPasskey {
token,
userName,
displayName,
}: PasskeySignUpInput): Promise<AuthsignalResponse<string>> {
}: PasskeySignUpInput): Promise<AuthsignalResponse<SignUpResponse>> {
await this.ensureModuleIsInitialized();

try {
Expand Down Expand Up @@ -77,7 +81,7 @@ export class AuthsignalPasskey {
action,
token,
autofill = false,
}: PasskeySignInInput = {}): Promise<AuthsignalResponse<string>> {
}: PasskeySignInInput = {}): Promise<AuthsignalResponse<SignInResponse>> {
await this.ensureModuleIsInitialized();

try {
Expand Down
13 changes: 13 additions & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,16 @@ export interface TokenPayload {
scope?: string;
sub: string;
}

export interface SignUpResponse {
token: string;
}

export interface SignInResponse {
isVerified: boolean;
token?: string;
userId?: string;
userAuthenticatorI?: string;
userName?: string;
userDisplayName?: string;
}

0 comments on commit 120a6a1

Please sign in to comment.