MiniProgramAuthSession.fromJson constructor
MiniProgramAuthSession.fromJson(
- Map<String, dynamic> json
)
Implementation
factory MiniProgramAuthSession.fromJson(Map<String, dynamic> json) {
final miniProgramId = json['miniProgramId'];
final user = json['user'];
final idToken = json['idToken'];
final refreshToken = json['refreshToken'];
final expiresAtUtc = json['expiresAtUtc'];
if (miniProgramId is! String || miniProgramId.trim().isEmpty) {
throw const FormatException('Auth session requires a miniProgramId.');
}
if (user is! Map) {
throw const FormatException('Auth session requires a user object.');
}
if (idToken is! String || idToken.trim().isEmpty) {
throw const FormatException('Auth session requires an idToken.');
}
if (refreshToken is! String || refreshToken.trim().isEmpty) {
throw const FormatException('Auth session requires a refreshToken.');
}
if (expiresAtUtc is! String || expiresAtUtc.trim().isEmpty) {
throw const FormatException('Auth session requires expiresAtUtc.');
}
final parsedExpiry = DateTime.tryParse(expiresAtUtc);
if (parsedExpiry == null) {
throw const FormatException('Auth session expiresAtUtc is invalid.');
}
return MiniProgramAuthSession(
miniProgramId: miniProgramId.trim(),
user: MiniProgramAuthUser.fromJson(Map<String, dynamic>.from(user)),
idToken: idToken.trim(),
refreshToken: refreshToken.trim(),
expiresAtUtc: parsedExpiry.toUtc(),
);
}