forked from baron/baron-sso
linked RP launch 테스트를 provider에서 분리
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import 'providers/linked_rps_provider.dart';
|
import 'models.dart';
|
||||||
|
|
||||||
String? resolveLinkedRpLaunchUrl(LinkedRp rp) {
|
String? resolveLinkedRpLaunchUrl(LinkedRp rp) {
|
||||||
final normalizedStatus = rp.status.trim().toLowerCase();
|
final normalizedStatus = rp.status.trim().toLowerCase();
|
||||||
|
|||||||
@@ -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/auth_token_store.dart';
|
||||||
import 'package:userfront/core/services/http_client.dart';
|
import 'package:userfront/core/services/http_client.dart';
|
||||||
import 'package:userfront/core/services/runtime_env.dart';
|
import 'package:userfront/core/services/runtime_env.dart';
|
||||||
|
import '../models.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<String> 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<String, dynamic> 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<String>().toList() ?? [],
|
|
||||||
lastAuthenticatedAt: parsedLastAuth,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class LinkedRpsNotifier extends AsyncNotifier<List<LinkedRp>> {
|
class LinkedRpsNotifier extends AsyncNotifier<List<LinkedRp>> {
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import 'package:flutter_test/flutter_test.dart';
|
import 'package:flutter_test/flutter_test.dart';
|
||||||
import 'package:userfront/features/dashboard/domain/linked_rp_launch.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({
|
LinkedRp _linkedRp({
|
||||||
required String status,
|
required String status,
|
||||||
|
|||||||
Reference in New Issue
Block a user