Files
sxchnge/frontend/packages/sxchnge_auth/lib/src/dto/backend.dart
T

28 lines
1.1 KiB
Dart

import 'dart:convert';
class BackendDTO {
BackendDTO(this.data);
factory BackendDTO.decode(String body) => BackendDTO(
(jsonDecode(body) as Map<String, dynamic>)['data'] as Map<String, dynamic>,
);
final Map<String, dynamic> data;
bool get verified => data['verified'] == true;
String? get email => data['email'] as String?;
String get error => data['error'] as String? ?? 'unavailable';
String get userId =>
data['userId'] as String? ??
(data['account'] as Map<String, dynamic>?)?['id'] as String? ??
'';
String get pendingToken =>
(data['pendingToken'] as Map<String, dynamic>)['token'] as String;
String get challengeId => data['challengeId'] as String? ?? '';
String get channel => data['channel'] as String? ?? '';
String get target => data['target'] as String;
DateTime get expiresAt => DateTime.parse(data['expiresAt'] as String);
DateTime get resendAt => DateTime.parse(data['resendAt'] as String);
String get accessToken =>
(data['accessToken'] as Map<String, dynamic>)['token'] as String;
String get refreshToken =>
(data['refreshToken'] as Map<String, dynamic>)['token'] as String;
}