46 lines
1.3 KiB
Dart
46 lines
1.3 KiB
Dart
|
|
class SessionResponse {
|
||
|
|
SessionResponse({
|
||
|
|
required this.accessToken,
|
||
|
|
required this.refreshToken,
|
||
|
|
required this.expiresIn,
|
||
|
|
required this.tokenType,
|
||
|
|
required this.userId,
|
||
|
|
required this.userEmail,
|
||
|
|
});
|
||
|
|
|
||
|
|
final String accessToken;
|
||
|
|
final String refreshToken;
|
||
|
|
final int expiresIn;
|
||
|
|
final String tokenType;
|
||
|
|
final String userId;
|
||
|
|
final String userEmail;
|
||
|
|
|
||
|
|
factory SessionResponse.fromJson(Map<String, dynamic> json) {
|
||
|
|
final user = (json['user'] as Map<String, dynamic>?) ?? <String, dynamic>{};
|
||
|
|
final accessToken = json['access_token'] as String?;
|
||
|
|
final refreshToken = json['refresh_token'] as String?;
|
||
|
|
final expiresIn = json['expires_in'] as int?;
|
||
|
|
final tokenType = json['token_type'] as String?;
|
||
|
|
final userId = user['id'] as String?;
|
||
|
|
final userEmail = user['email'] as String?;
|
||
|
|
|
||
|
|
if (accessToken == null ||
|
||
|
|
refreshToken == null ||
|
||
|
|
expiresIn == null ||
|
||
|
|
tokenType == null ||
|
||
|
|
userId == null ||
|
||
|
|
userEmail == null) {
|
||
|
|
throw const FormatException('Invalid session response payload');
|
||
|
|
}
|
||
|
|
|
||
|
|
return SessionResponse(
|
||
|
|
accessToken: accessToken,
|
||
|
|
refreshToken: refreshToken,
|
||
|
|
expiresIn: expiresIn,
|
||
|
|
tokenType: tokenType,
|
||
|
|
userId: userId,
|
||
|
|
userEmail: userEmail,
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|