diff --git a/.idea/modules.xml b/.idea/modules.xml
index deb74bef..523fb975 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -15,6 +15,7 @@
+
diff --git a/.idea/runConfigurations/melos_flutter_test_legacy_auth.xml b/.idea/runConfigurations/melos_flutter_test_legacy_auth.xml
new file mode 100644
index 00000000..b90babc1
--- /dev/null
+++ b/.idea/runConfigurations/melos_flutter_test_legacy_auth.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/mobile_app/lib/navigation/app_router.dart b/apps/mobile_app/lib/navigation/app_router.dart
index 79182af9..2ede078f 100644
--- a/apps/mobile_app/lib/navigation/app_router.dart
+++ b/apps/mobile_app/lib/navigation/app_router.dart
@@ -1,6 +1,7 @@
import 'package:account/account.dart';
import 'package:activity/activity.dart';
import 'package:auth/auth.dart';
+import 'package:legacy_auth/legacy_auth.dart';
import 'package:customer_service/customer_service.dart';
import 'package:dashboard_shell/dashboard_builder.dart';
import 'package:device_management/device_management.dart';
@@ -23,7 +24,7 @@ late final GoRouter appRouter;
void configureAppRouter() {
appRouter = GoRouter(
navigatorKey: rootNavigatorKey,
- initialLocation: AppRoutes.splash,
+ initialLocation: AppRoutes.legacyLogin,
debugLogDiagnostics: true,
routes: [
GoRoute(
@@ -153,6 +154,41 @@ void configureAppRouter() {
name: 'device_setup',
pageBuilder: DeviceSetupBuilder().buildPage,
),
+ GoRoute(
+ path: AppRoutes.legacyLogin,
+ name: 'legacy_login',
+ pageBuilder: LegacyLoginBuilder().buildPage,
+ ),
+ GoRoute(
+ path: AppRoutes.legacySignup,
+ name: 'legacy_signup',
+ pageBuilder: LegacySignupBuilder().buildPage,
+ ),
+ GoRoute(
+ path: AppRoutes.legacyOnboarding,
+ name: 'legacy_onboarding',
+ pageBuilder: LegacyOnboardingBuilder().buildPage,
+ ),
+ GoRoute(
+ path: AppRoutes.legacyLinkPhone,
+ name: 'legacy_request_link_phone',
+ pageBuilder: LegacyRequestLinkPhoneBuilder().buildPage,
+ ),
+ GoRoute(
+ path: AppRoutes.legacyPhoneCode,
+ name: 'legacy_verify_link_phone_code',
+ pageBuilder: LegacyVerifyLinkPhoneCodeBuilder().buildPage,
+ ),
+ GoRoute(
+ path: AppRoutes.legacyRecoverPassword,
+ name: 'legacy_recover_password',
+ pageBuilder: LegacyRequestRecoveryBuilder().buildPage,
+ ),
+ GoRoute(
+ path: AppRoutes.legacyDeviceSetup,
+ name: 'legacy_device_setup',
+ pageBuilder: LegacyDeviceSetupBuilder().buildPage,
+ ),
GoRoute(
path: AppRoutes.hipayWebView,
name: 'hipay_webview',
diff --git a/apps/mobile_app/pubspec.lock b/apps/mobile_app/pubspec.lock
index 8511bff6..5a913152 100644
--- a/apps/mobile_app/pubspec.lock
+++ b/apps/mobile_app/pubspec.lock
@@ -690,6 +690,13 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.0.2"
+ legacy_auth:
+ dependency: "direct main"
+ description:
+ path: "../../modules/legacy/modules/legacy_auth"
+ relative: true
+ source: path
+ version: "0.0.1"
legacy_dashboard_shell:
dependency: "direct main"
description:
diff --git a/apps/mobile_app/pubspec.yaml b/apps/mobile_app/pubspec.yaml
index a97c1719..d8968f64 100644
--- a/apps/mobile_app/pubspec.yaml
+++ b/apps/mobile_app/pubspec.yaml
@@ -61,6 +61,8 @@ dependencies:
path: ../../modules/legacy/modules/account
device_management:
path: ../../modules/legacy/modules/device_management
+ legacy_auth:
+ path: ../../modules/legacy/modules/legacy_auth
#packages dependencies go here
navigation:
path: ../../packages/navigation
diff --git a/apps/mobile_app/pubspec_overrides.yaml b/apps/mobile_app/pubspec_overrides.yaml
index caf849a2..2a761c30 100644
--- a/apps/mobile_app/pubspec_overrides.yaml
+++ b/apps/mobile_app/pubspec_overrides.yaml
@@ -1,4 +1,4 @@
-# melos_managed_dependency_overrides: account,activity,auth,customer_service,dashboard_shell,design_system,flutter_treezor_entrust_sdk_bridge,fonts,home,legacy_dashboard_shell,legacy_shared,navigation,notifications,payments,profile,sca_treezor,sf_infrastructure,sf_localizations,sf_shared,splash,utils,control_panel,device_management
+# melos_managed_dependency_overrides: account,activity,auth,customer_service,dashboard_shell,design_system,flutter_treezor_entrust_sdk_bridge,fonts,home,legacy_dashboard_shell,legacy_shared,navigation,notifications,payments,profile,sca_treezor,sf_infrastructure,sf_localizations,sf_shared,splash,utils,control_panel,device_management,legacy_auth
dependency_overrides:
account:
path: ../../modules/legacy/modules/account
@@ -22,6 +22,8 @@ dependency_overrides:
path: ../../packages/fonts
home:
path: ../../modules/home
+ legacy_auth:
+ path: ../../modules/legacy/modules/legacy_auth
legacy_dashboard_shell:
path: ../../modules/legacy/modules/legacy_dashboard_shell
legacy_shared:
diff --git a/modules/legacy/modules/legacy_auth/.gitignore b/modules/legacy/modules/legacy_auth/.gitignore
new file mode 100644
index 00000000..dd5eb989
--- /dev/null
+++ b/modules/legacy/modules/legacy_auth/.gitignore
@@ -0,0 +1,31 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+migrate_working_dir/
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock.
+/pubspec.lock
+**/doc/api/
+.dart_tool/
+.flutter-plugins-dependencies
+/build/
+/coverage/
diff --git a/modules/legacy/modules/legacy_auth/.metadata b/modules/legacy/modules/legacy_auth/.metadata
new file mode 100644
index 00000000..d7469f07
--- /dev/null
+++ b/modules/legacy/modules/legacy_auth/.metadata
@@ -0,0 +1,10 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+ revision: "adc901062556672b4138e18a4dc62a4be8f4b3c2"
+ channel: "stable"
+
+project_type: package
diff --git a/modules/legacy/modules/legacy_auth/CHANGELOG.md b/modules/legacy/modules/legacy_auth/CHANGELOG.md
new file mode 100644
index 00000000..41cc7d81
--- /dev/null
+++ b/modules/legacy/modules/legacy_auth/CHANGELOG.md
@@ -0,0 +1,3 @@
+## 0.0.1
+
+* TODO: Describe initial release.
diff --git a/modules/legacy/modules/legacy_auth/LICENSE b/modules/legacy/modules/legacy_auth/LICENSE
new file mode 100644
index 00000000..ba75c69f
--- /dev/null
+++ b/modules/legacy/modules/legacy_auth/LICENSE
@@ -0,0 +1 @@
+TODO: Add your license here.
diff --git a/modules/legacy/modules/legacy_auth/README.md b/modules/legacy/modules/legacy_auth/README.md
new file mode 100644
index 00000000..4a260d8d
--- /dev/null
+++ b/modules/legacy/modules/legacy_auth/README.md
@@ -0,0 +1,39 @@
+
+
+TODO: Put a short description of the package here that helps potential users
+know whether this package might be useful for them.
+
+## Features
+
+TODO: List what your package can do. Maybe include images, gifs, or videos.
+
+## Getting started
+
+TODO: List prerequisites and provide or point to information on how to
+start using the package.
+
+## Usage
+
+TODO: Include short and useful examples for package users. Add longer examples
+to `/example` folder.
+
+```dart
+const like = 'sample';
+```
+
+## Additional information
+
+TODO: Tell users more about the package: where to find more information, how to
+contribute to the package, how to file issues, what response they can expect
+from the package authors, and more.
diff --git a/modules/legacy/modules/legacy_auth/analysis_options.yaml b/modules/legacy/modules/legacy_auth/analysis_options.yaml
new file mode 100644
index 00000000..a5744c1c
--- /dev/null
+++ b/modules/legacy/modules/legacy_auth/analysis_options.yaml
@@ -0,0 +1,4 @@
+include: package:flutter_lints/flutter.yaml
+
+# Additional information about this file can be found at
+# https://dart.dev/guides/language/analysis-options
diff --git a/modules/legacy/modules/legacy_auth/lib/legacy_auth.dart b/modules/legacy/modules/legacy_auth/lib/legacy_auth.dart
new file mode 100644
index 00000000..81bd4f3b
--- /dev/null
+++ b/modules/legacy/modules/legacy_auth/lib/legacy_auth.dart
@@ -0,0 +1,10 @@
+export 'src/features/onboarding/onboarding_builder.dart';
+export 'src/features/link_phone/presentation/request_phone/request_link_phone_builder.dart';
+export 'src/features/link_phone/presentation/verify_code/verify_link_phone_code_builder.dart';
+export 'src/features/login/login_builder.dart';
+export 'src/features/recover_password/presentation/request_recovery/request_recovery_builder.dart';
+export 'src/features/device_setup/device_setup_builder.dart';
+export 'src/features/sign_up/sign_up_builder.dart';
+export 'src/core/data/datasource/session_local_datasource.dart';
+export 'src/core/providers/auth_repository_provider.dart';
+export 'src/core/data/datasource/session_local_datasource_impl.dart';
diff --git a/modules/legacy/modules/legacy_auth/lib/src/core/data/datasource/auth_remote_datasource.dart b/modules/legacy/modules/legacy_auth/lib/src/core/data/datasource/auth_remote_datasource.dart
new file mode 100644
index 00000000..3d7bb231
--- /dev/null
+++ b/modules/legacy/modules/legacy_auth/lib/src/core/data/datasource/auth_remote_datasource.dart
@@ -0,0 +1,56 @@
+import 'package:legacy_auth/src/core/data/models/child_profile_response_model.dart';
+import 'package:legacy_auth/src/core/data/models/sign_up_request_model.dart';
+import 'package:legacy_auth/src/core/data/models/sign_up_response_model.dart';
+import 'package:legacy_auth/src/core/data/models/two_fa_secret_response_model.dart';
+import 'package:legacy_auth/src/core/data/models/login_response_model.dart';
+
+abstract class LegacyAuthRemoteDatasource {
+ Future requestPhoneCode({required String phone});
+
+ Future verifyPhoneCode({required String phone, required String code});
+
+ Future login({
+ required String email,
+ required String password,
+ });
+ Future twoFARequestCode({
+ required String token,
+ required String methodType,
+ });
+ Future twoFASendCode({
+ required String token,
+ required String code,
+ required String methodType,
+ });
+
+ // Future totpLogin({required String token, required String code});
+
+ Future signUp({required LegacySignUpRequestModel request});
+
+ Future generateTwoFASignUp({required String token});
+
+ Future verifyTwoFACodeSignUp({
+ required String token,
+ required String code,
+ });
+
+ Future requestPasswordReset({required String email});
+
+ Future recoverPassword({required newPassword, required token});
+
+ Future logout();
+
+ Future createChildProfile({
+ required String id,
+ required String parentId,
+ required String firstName,
+ required String lastName,
+ required int bornAt,
+ required String genrer,
+ required String relationType,
+ required String address,
+ required String cardPublicKey,
+ required String deviceActivationCode,
+ required String scaProof,
+ });
+}
diff --git a/modules/legacy/modules/legacy_auth/lib/src/core/data/datasource/auth_remote_datasource_impl.dart b/modules/legacy/modules/legacy_auth/lib/src/core/data/datasource/auth_remote_datasource_impl.dart
new file mode 100644
index 00000000..b51da51a
--- /dev/null
+++ b/modules/legacy/modules/legacy_auth/lib/src/core/data/datasource/auth_remote_datasource_impl.dart
@@ -0,0 +1,343 @@
+import 'dart:convert';
+
+import 'package:legacy_auth/src/core/data/models/child_profile_response_model.dart';
+import 'package:legacy_auth/src/core/data/models/sign_up_request_model.dart';
+import 'package:legacy_auth/src/core/data/models/sign_up_response_model.dart';
+import 'package:legacy_auth/src/core/data/models/two_fa_secret_response_model.dart';
+import 'package:dio/dio.dart';
+import 'package:flutter/material.dart';
+import 'package:sf_infrastructure/sf_infrastructure.dart';
+import 'package:legacy_auth/src/core/data/models/login_response_model.dart';
+
+import 'auth_remote_datasource.dart';
+
+class LegacyAuthRemoteDatasourceImpl implements LegacyAuthRemoteDatasource {
+ LegacyAuthRemoteDatasourceImpl(this._repository);
+
+ final QuestiaRepository _repository;
+
+ @override
+ Future requestPhoneCode({required String phone}) async {
+ try {
+ await _repository.post(
+ '/auth/link-phone/request-code',
+ body: {'phone': phone},
+ );
+ } on DioException catch (error) {
+ throw _mapDioError(
+ error,
+ defaultMessage: error.response?.data ?? 'Error to request phone code',
+ );
+ }
+ }
+
+ @override
+ Future verifyPhoneCode({
+ required String phone,
+ required String code,
+ }) async {
+ try {
+ await _repository.post(
+ '/auth/link-phone/verify-code',
+ body: {'phone': phone, 'code': code},
+ );
+ } on DioException catch (error) {
+ throw _mapDioError(error, defaultMessage: 'Error in verification code');
+ }
+ }
+
+ @override
+ Future login({
+ required String email,
+ required String password,
+ }) async {
+ try {
+ final response = await _repository.post