diff --git a/userfront/lib/features/dashboard/domain/linked_rp_launch.dart b/userfront/lib/features/dashboard/domain/linked_rp_launch.dart index ccc3fb1b..6af9511f 100644 --- a/userfront/lib/features/dashboard/domain/linked_rp_launch.dart +++ b/userfront/lib/features/dashboard/domain/linked_rp_launch.dart @@ -1,4 +1,4 @@ -import 'providers/linked_rps_provider.dart'; +import 'models.dart'; String? resolveLinkedRpLaunchUrl(LinkedRp rp) { final normalizedStatus = rp.status.trim().toLowerCase(); diff --git a/userfront/lib/features/dashboard/domain/providers/linked_rps_provider.dart b/userfront/lib/features/dashboard/domain/providers/linked_rps_provider.dart index c209f2ea..a4616bc6 100644 --- a/userfront/lib/features/dashboard/domain/providers/linked_rps_provider.dart +++ b/userfront/lib/features/dashboard/domain/providers/linked_rps_provider.dart @@ -4,57 +4,7 @@ import 'package:userfront/core/services/auth_proxy_service.dart'; import 'package:userfront/core/services/auth_token_store.dart'; import 'package:userfront/core/services/http_client.dart'; import 'package:userfront/core/services/runtime_env.dart'; - -class LinkedRp { - final String id; - final String name; - final String logo; - final String url; - final String initUrl; - final bool autoLoginSupported; - final String autoLoginUrl; - final String status; - final List scopes; - final DateTime? lastAuthenticatedAt; - - LinkedRp({ - required this.id, - required this.name, - required this.logo, - required this.url, - required this.initUrl, - required this.autoLoginSupported, - required this.autoLoginUrl, - required this.status, - required this.scopes, - required this.lastAuthenticatedAt, - }); - - factory LinkedRp.fromJson(Map json) { - final rawLastAuth = json['lastAuthenticatedAt']?.toString() ?? ''; - DateTime? parsedLastAuth; - if (rawLastAuth.isNotEmpty) { - try { - parsedLastAuth = DateTime.parse(rawLastAuth).toLocal(); - } catch (_) { - parsedLastAuth = null; - } - } - - return LinkedRp( - id: json['id']?.toString() ?? '', - name: json['name']?.toString() ?? '', - logo: json['logo']?.toString() ?? '', - url: json['url']?.toString() ?? '', - initUrl: json['init_url']?.toString() ?? '', - autoLoginSupported: json['auto_login_supported'] == true, - autoLoginUrl: json['auto_login_url']?.toString() ?? '', - status: json['status']?.toString() ?? 'unknown', - scopes: (json['scopes'] as List?)?.whereType().toList() ?? [], - lastAuthenticatedAt: parsedLastAuth, - ); - } -} +import '../models.dart'; class LinkedRpsNotifier extends AsyncNotifier> { @override diff --git a/userfront/test/linked_rp_launch_test.dart b/userfront/test/linked_rp_launch_test.dart index c6846a91..f8c7e5d4 100644 --- a/userfront/test/linked_rp_launch_test.dart +++ b/userfront/test/linked_rp_launch_test.dart @@ -1,6 +1,6 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:userfront/features/dashboard/domain/linked_rp_launch.dart'; -import 'package:userfront/features/dashboard/domain/providers/linked_rps_provider.dart'; +import 'package:userfront/features/dashboard/domain/models.dart'; LinkedRp _linkedRp({ required String status,