11package com .tsauthentication ;
22
3+ import static androidx .work .ListenableWorker .Result .success ;
4+
35import androidx .annotation .NonNull ;
46
57import com .facebook .react .bridge .Promise ;
68import com .facebook .react .bridge .ReactApplicationContext ;
79import com .facebook .react .bridge .ReactContextBaseJavaModule ;
810import com .facebook .react .bridge .ReactMethod ;
11+ import com .facebook .react .bridge .WritableMap ;
12+ import com .facebook .react .bridge .WritableNativeMap ;
913import com .facebook .react .module .annotations .ReactModule ;
14+ import com .transmit .authentication .AuthenticationError ;
15+ import com .transmit .authentication .AuthenticationResult ;
16+ import com .transmit .authentication .RegistrationResult ;
17+ import com .transmit .authentication .TSAuthCallback ;
18+ import com .transmit .authentication .TSAuthentication ;
19+
20+ import java .util .HashMap ;
1021
1122@ ReactModule (name = TsAuthenticationModule .NAME )
1223public class TsAuthenticationModule extends ReactContextBaseJavaModule {
@@ -22,11 +33,78 @@ public String getName() {
2233 return NAME ;
2334 }
2435
36+ @ ReactMethod
37+ @ NonNull public void initialize (String clientId , String domain , String baseUrl , Promise promise ) {
38+ TSAuthentication .init (getReactApplicationContext (),
39+ baseUrl ,
40+ clientId
41+ );
42+ promise .resolve (true );
43+ }
44+
45+ // Registration
2546
26- // Example method
27- // See https://reactnative.dev/docs/native-modules-android
2847 @ ReactMethod
29- public void multiply (double a , double b , Promise promise ) {
30- promise .resolve (a * b );
48+ @ NonNull public void register (
49+ String username ,
50+ String displayName ,
51+ Promise promise ) {
52+ TSAuthentication .isPlatformAuthenticatorSupported (
53+ getReactApplicationContext (),
54+ new TSAuthCallback <Boolean >() {
55+ @ Override
56+ public void success (Boolean aBoolean ) {
57+ continueRegistration (username , displayName , promise );
58+ }
59+
60+ @ Override
61+ public void error (@ NonNull AuthenticationError authenticationError ) {
62+ promise .reject (new Error ("Unsupported platform" ));
63+ }
64+ }
65+ );
66+ }
67+ private void continueRegistration (String username , String displayName , Promise promise ) {
68+ TSAuthentication .register (
69+ getReactApplicationContext (),
70+ username ,
71+ displayName ,
72+ new TSAuthCallback <RegistrationResult >() {
73+ @ Override
74+ public void success (RegistrationResult registrationResult ) {
75+ WritableMap map = new WritableNativeMap ();
76+ map .putString (registrationResult .result (), NAME );
77+ promise .resolve (map );
78+ }
79+
80+ @ Override
81+ public void error (@ NonNull AuthenticationError authenticationError ) {
82+ promise .reject (NAME , authenticationError .toString ());
83+ }
84+ }
85+ );
86+ }
87+
88+ // Authentication
89+ @ ReactMethod
90+ @ NonNull public void authenticate (String username , Promise promise ) {
91+ TSAuthentication .authenticate (
92+ getReactApplicationContext (),
93+ username ,
94+ new TSAuthCallback <AuthenticationResult >() {
95+ @ Override
96+ public void success (AuthenticationResult authenticationResult ) {
97+ WritableMap map = new WritableNativeMap ();
98+ map .putString (authenticationResult .result (), NAME );
99+ promise .resolve (map );
100+ }
101+
102+ @ Override
103+ public void error (@ NonNull AuthenticationError authenticationError ) {
104+ promise .reject (NAME , authenticationError .toString ());
105+ }
106+ }
107+ );
31108 }
32109}
110+
0 commit comments