Skip to content

Commit 591e442

Browse files
committed
current user updated
1 parent f6efe05 commit 591e442

File tree

7 files changed

+27
-21
lines changed

7 files changed

+27
-21
lines changed

android/src/main/kotlin/id/passage/passage_flutter/PassageFlutter.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ internal class PassageFlutter(private val activity: Activity, appId: String) {
103103

104104
fun newRegisterOneTimePasscode(call: MethodCall, result: MethodChannel.Result) {
105105
val identifier = call.argument<String>("identifier") ?: return invalidArgumentError(result)
106-
val language = call.argument<String>("language")
106+
val language = call.argument<String?>("language")
107107
CoroutineScope(Dispatchers.IO).launch {
108108
try {
109109
val otpId = passage.oneTimePasscode.register(identifier, language).otpId
@@ -116,7 +116,7 @@ internal class PassageFlutter(private val activity: Activity, appId: String) {
116116

117117
fun newLoginOneTimePasscode(call: MethodCall, result: MethodChannel.Result) {
118118
val identifier = call.argument<String>("identifier") ?: return invalidArgumentError(result)
119-
val language = call.argument<String>("language")
119+
val language = call.argument<String?>("language")
120120
CoroutineScope(Dispatchers.IO).launch {
121121
try {
122122
val otpId = passage.oneTimePasscode.login(identifier, language).otpId
@@ -153,7 +153,7 @@ internal class PassageFlutter(private val activity: Activity, appId: String) {
153153

154154
fun newRegisterMagicLink(call: MethodCall, result: MethodChannel.Result) {
155155
val identifier = call.argument<String>("identifier") ?: return invalidArgumentError(result)
156-
val language = call.argument<String>("language")
156+
val language = call.argument<String?>("language")
157157
CoroutineScope(Dispatchers.IO).launch {
158158
try {
159159
val magicLinkId = passage.magicLink.register(identifier, language).id
@@ -423,12 +423,13 @@ internal class PassageFlutter(private val activity: Activity, appId: String) {
423423

424424
fun changeEmail(call: MethodCall, result: MethodChannel.Result) {
425425
val newEmail = call.argument<String>("newEmail") ?: return invalidArgumentError(result)
426+
val language = call.argument<String?>("language")
426427
CoroutineScope(Dispatchers.IO).launch {
427428
try {
428429
val user = passage.currentUser.userInfo() ?: throw PassageUserUnauthorizedException(
429430
"User is not authorized."
430431
)
431-
val magicLinkId = passage.currentUser.changeEmail(newEmail)?.id
432+
val magicLinkId = passage.currentUser.changeEmail(newEmail, language)?.id
432433
result.success(magicLinkId)
433434
} catch (e: Exception) {
434435
val error = when (e) {
@@ -445,10 +446,11 @@ internal class PassageFlutter(private val activity: Activity, appId: String) {
445446

446447
fun changePhone(call: MethodCall, result: MethodChannel.Result) {
447448
val newPhone = call.argument<String>("newPhone") ?: return invalidArgumentError(result)
449+
val language = call.argument<String?>("language")
448450
CoroutineScope(Dispatchers.IO).launch {
449451
try {
450452
val user = passage.currentUser.userInfo()
451-
val magicLinkId = passage.currentUser.changePhone(newPhone)?.id
453+
val magicLinkId = passage.currentUser.changePhone(newPhone, language)?.id
452454
result.success(magicLinkId)
453455
} catch (e: Exception) {
454456
val error = when (e) {

integrationtestapp/integration_test/change_user_info_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ void main() {
4747
await loginWithMagicLink();
4848
final date = DateTime.now().millisecondsSinceEpoch;
4949
final identifier = 'authentigator+$date@passage.id';
50-
final response = await passage.currentUser.changeEmail(identifier);
50+
final response = await passage.currentUser.changeEmail(identifier, language: "es");
5151
expect(response, isNotNull);
5252
} catch (e) {
5353
fail('Test failed due to unexpected exception: $e');

ios/Classes/PassageFlutter.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -430,9 +430,10 @@ internal class PassageFlutter {
430430
result(error)
431431
return
432432
}
433+
let language = (arguments as? [String: Any])?["language"] as? String
433434
Task {
434435
do {
435-
let magicLink = try await passage.currentUser.changeEmail(newEmail: newEmail)
436+
let magicLink = try await passage.currentUser.changeEmail(newEmail: newEmail, language: language)
436437
result(magicLink.id)
437438
} catch let error as CurrentUserError {
438439
result(handleCurrentUserError(error))
@@ -453,9 +454,10 @@ internal class PassageFlutter {
453454
result(error)
454455
return
455456
}
457+
let language = (arguments as? [String: Any])?["language"] as? String
456458
Task {
457459
do {
458-
let magicLink = try await passage.currentUser.changePhone(newPhone: newPhone)
460+
let magicLink = try await passage.currentUser.changePhone(newPhone: newPhone, language: language)
459461
result(magicLink.id)
460462
} catch let error as CurrentUserError {
461463
result(handleCurrentUserError(error))

lib/passage_current_user.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,31 @@ class PassageCurrentUser {
2222
///
2323
/// Parameters:
2424
/// - `newEmail`: The user's new email.
25+
/// - `language`: The language code for the email change.
2526
///
2627
/// Returns:
2728
/// A `Future<MagicLink>` representing the magic link
2829
///
2930
/// Throws:
3031
/// `PassageError`
3132
Future<MagicLink> changeEmail(String newEmail, {String? language}) {
32-
return PassageFlutterPlatform.instance.changeEmail(newEmail);
33+
return PassageFlutterPlatform.instance.changeEmail(newEmail, language);
3334
}
3435

3536
/// Initiates a phone number change for the authenticated user. A phone change requires verification,
3637
/// so an email will be sent to the user which they must verify before the phone change takes effect.
3738
///
3839
/// Parameters:
3940
/// - `newPhone`: The user's new phone number.
41+
/// - The language code for the phone change.
4042
///
4143
/// Returns:
4244
/// A `Future<MagicLink>` representing the magic link
4345
///
4446
/// Throws:
4547
/// `PassageError`
4648
Future<MagicLink> changePhone(String newPhone, {String? language}) {
47-
return PassageFlutterPlatform.instance.changePhone(newPhone);
49+
return PassageFlutterPlatform.instance.changePhone(newPhone, language);
4850
}
4951

5052
/// Attempts to create and register a new passkey for the authenticated user.

lib/passage_flutter_platform/passage_flutter_method_channel.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -316,21 +316,21 @@ class MethodChannelPassageFlutter extends PassageFlutterPlatform {
316316
}
317317

318318
@override
319-
Future<MagicLink> changeEmail(String newEmail) async {
319+
Future<MagicLink> changeEmail(String newEmail, String? language) async {
320320
try {
321321
final magicLinkId = await methodChannel
322-
.invokeMethod<String>('changeEmail', {'newEmail': newEmail});
322+
.invokeMethod<String>('changeEmail', {'newEmail': newEmail, 'language': language});
323323
return MagicLink(magicLinkId!);
324324
} catch (e) {
325325
throw PassageError.fromObject(object: e);
326326
}
327327
}
328328

329329
@override
330-
Future<MagicLink> changePhone(String newPhone) async {
330+
Future<MagicLink> changePhone(String newPhone, String? language) async {
331331
try {
332332
final magicLinkId = await methodChannel
333-
.invokeMethod<String>('changePhone', {'newPhone': newPhone});
333+
.invokeMethod<String>('changePhone', {'newPhone': newPhone, 'language': language});
334334
return MagicLink(magicLinkId!);
335335
} catch (e) {
336336
throw PassageError.fromObject(object: e);

lib/passage_flutter_platform/passage_flutter_platform_interface.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ abstract class PassageFlutterPlatform extends PlatformInterface {
7676
'newRegisterMagicLink() has not been implemented.');
7777
}
7878

79-
Future<String> newLoginMagicLink(String identifier, String? language) {
79+
Future<String> newLoginMagicLink(String identifier, String? language) {
8080
throw UnimplementedError('newLoginMagicLink() has not been implemented.');
8181
}
8282

@@ -153,11 +153,11 @@ abstract class PassageFlutterPlatform extends PlatformInterface {
153153
throw UnimplementedError('editPasskeyName() has not been implemented.');
154154
}
155155

156-
Future<MagicLink> changeEmail(String newEmail) {
156+
Future<MagicLink> changeEmail(String newEmail, String? language) {
157157
throw UnimplementedError('changeEmail() has not been implemented.');
158158
}
159159

160-
Future<MagicLink> changePhone(String newPhone) {
160+
Future<MagicLink> changePhone(String newPhone, String? language) {
161161
throw UnimplementedError('changePhone() has not been implemented.');
162162
}
163163

lib/passage_flutter_web.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -372,9 +372,9 @@ class PassageFlutterWeb extends PassageFlutterPlatform {
372372
}
373373

374374
@override
375-
Future<MagicLink> changeEmail(String newEmail) async {
375+
Future<MagicLink> changeEmail(String newEmail, String? language) async {
376376
try {
377-
final resultPromise = passage.currentUser.changeEmail(newEmail);
377+
final resultPromise = passage.currentUser.changeEmail(newEmail, language);
378378
final jsObject = await js_util.promiseToFuture(resultPromise);
379379
return MagicLink(jsObject.id);
380380
} catch (e) {
@@ -384,9 +384,9 @@ class PassageFlutterWeb extends PassageFlutterPlatform {
384384
}
385385

386386
@override
387-
Future<MagicLink> changePhone(String newPhone) async {
387+
Future<MagicLink> changePhone(String newPhone, String? language) async {
388388
try {
389-
final resultPromise = passage.currentUser.changePhone(newPhone);
389+
final resultPromise = passage.currentUser.changePhone(newPhone, language);
390390
final jsObject = await js_util.promiseToFuture(resultPromise);
391391
return MagicLink(jsObject.id);
392392
} catch (e) {

0 commit comments

Comments
 (0)