Credentials.fromJson constructor

Credentials.fromJson(
  1. Map<String, dynamic> json
)

Constructs Credentials from the provided json.

Implementation

factory Credentials.fromJson(Map<String, dynamic> json) {
  try {
    return _$CredentialsFromJson(json);
  } catch (_) {
    // TODO: Remove when clients migrate from old `Credentials` storage.
    try {
      return Credentials(
        AccessToken(
          AccessTokenSecret(json['access']['secret']),
          PreciseDateTime.parse(json['access']['expireAt']['val']),
        ),
        RefreshToken(
          RefreshTokenSecret(json['refresh']['secret']),
          PreciseDateTime.parse(json['refresh']['expireAt']['val']),
        ),
        Session(
          id: SessionId(json['session']?['id'] ?? json['sessionId'] ?? ''),
          ip: IpAddress(json['session']?['ip'] ?? '127.0.0.0'),
          userAgent: UserAgent(json['session']?['userAgent'] ?? ''),
          lastActivatedAt: PreciseDateTime.now(),
          siteDomain: SiteDomain(''),
        ),
        UserId(json['userId']),
      );
    } catch (_) {
      // No-op.
    }

    rethrow;
  }
}