Skip to content

Commit 73c0fb6

Browse files
committed
fix the function handles for add / remove connection
1 parent ee3daf8 commit 73c0fb6

File tree

3 files changed

+51
-37
lines changed

3 files changed

+51
-37
lines changed

lib/src/models/enums/social_provider.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/// The currently supported social providers.
22
///
3-
/// Depending on the platform; some social providers might be unavailable.
3+
/// Depending on the platform some social providers might be unavailable.
44
final class SocialProvider {
55
/// The private constructor.
66
const SocialProvider._(this.name);

lib/src/web/gigya_flutter_plugin_web.dart

Lines changed: 43 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import 'static_interop/models/profile.dart';
1515
import 'static_interop/parameters/basic.dart';
1616
import 'static_interop/parameters/login.dart';
1717
import 'static_interop/parameters/registration.dart';
18+
import 'static_interop/parameters/social_connection.dart';
1819
import 'static_interop/response/registration_response.dart';
1920
import 'static_interop/response/response.dart';
2021
import 'static_interop/window.dart';
@@ -41,7 +42,8 @@ class GigyaFlutterPluginWeb extends GigyaFlutterPluginPlatform {
4142
}) {
4243
final Completer<Map<String, dynamic>> completer = Completer<Map<String, dynamic>>();
4344

44-
gigyaWebSdk.socialize.addConnection(
45+
GigyaWebSdk.instance.socialize.addConnection.callAsFunction(
46+
null,
4547
AddSocialConnectionParameters(
4648
authFlow: parameters['authFlow'] as String?,
4749
extraFields: parameters['extraFields'] as String?,
@@ -52,24 +54,26 @@ class GigyaFlutterPluginWeb extends GigyaFlutterPluginPlatform {
5254
redirectMethod: parameters['redirectMethod'] as String?,
5355
redirectURL: parameters['redirectURL'] as String?,
5456
sessionExpiration: parameters['sessionExpiration'] as int?,
55-
callback: allowInterop((SocialConnectionResponse response) {
56-
if (completer.isCompleted) {
57-
return;
58-
}
57+
callback: allowInterop(
58+
(SocialConnectionResponse response) {
59+
if (completer.isCompleted) {
60+
return;
61+
}
5962

60-
if (response.errorCode == 0) {
61-
completer.complete(StaticInteropUtils.responseToMap(response));
62-
} else {
63-
completer.completeError(
64-
GigyaError(
65-
apiVersion: response.apiVersion,
66-
callId: response.callId,
67-
errorCode: response.errorCode,
68-
errorDetails: response.errorDetails,
69-
),
70-
);
71-
}
72-
}),
63+
if (response.baseResponse.errorCode == 0) {
64+
completer.complete(response.toMap());
65+
} else {
66+
completer.completeError(
67+
GigyaError(
68+
apiVersion: response.baseResponse.apiVersion,
69+
callId: response.baseResponse.callId,
70+
details: response.baseResponse.details,
71+
errorCode: response.baseResponse.errorCode,
72+
),
73+
);
74+
}
75+
},
76+
).toJS,
7377
),
7478
);
7579

@@ -407,30 +411,33 @@ class GigyaFlutterPluginWeb extends GigyaFlutterPluginPlatform {
407411
}) {
408412
final Completer<Map<String, dynamic>> completer = Completer<Map<String, dynamic>>();
409413

410-
gigyaWebSdk.socialize.removeConnection(
414+
GigyaWebSdk.instance.socialize.removeConnection.callAsFunction(
415+
null,
411416
RemoveSocialConnectionParameters(
412417
forceProvidersLogout: parameters['forceProvidersLogout'] as bool?,
413418
lastIdentityHandling: parameters['lastIdentityHandling'] as String?,
414419
provider: provider.name,
415420
removeLoginID: parameters['removeLoginID'] as bool?,
416-
callback: allowInterop((SocialConnectionResponse response) {
417-
if (completer.isCompleted) {
418-
return;
419-
}
421+
callback: allowInterop(
422+
(SocialConnectionResponse response) {
423+
if (completer.isCompleted) {
424+
return;
425+
}
420426

421-
if (response.errorCode == 0) {
422-
completer.complete(StaticInteropUtils.responseToMap(response));
423-
} else {
424-
completer.completeError(
425-
GigyaError(
426-
apiVersion: response.apiVersion,
427-
callId: response.callId,
428-
errorCode: response.errorCode,
429-
errorDetails: response.errorDetails,
430-
),
431-
);
432-
}
433-
}),
427+
if (response.baseResponse.errorCode == 0) {
428+
completer.complete(response.toMap());
429+
} else {
430+
completer.completeError(
431+
GigyaError(
432+
apiVersion: response.baseResponse.apiVersion,
433+
callId: response.baseResponse.callId,
434+
details: response.baseResponse.details,
435+
errorCode: response.baseResponse.errorCode,
436+
),
437+
);
438+
}
439+
},
440+
).toJS,
434441
),
435442
);
436443

lib/src/web/static_interop/response/social_connection_response.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,11 @@ extension type SocialConnectionResponse(Response baseResponse) {
1414
///
1515
/// In the web SDK, the `User` and `Profile` objects share the same shape.
1616
external Profile get user;
17+
18+
/// Convert this response to a [Map].
19+
Map<String, dynamic> toMap() {
20+
return <String, dynamic>{
21+
'user': user.toMap(),
22+
};
23+
}
1724
}

0 commit comments

Comments
 (0)