MiniProgramAuthSession.fromJson constructor

MiniProgramAuthSession.fromJson(
  1. 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(),
  );
}