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']),
        ),
        RefreshToken(
          RefreshTokenSecret(json['refresh']['secret']),
          PreciseDateTime.parse(json['refresh']['expireAt']),
        ),
        Session(
          id: SessionId(json['sessionId'] ?? ''),
          ip: IpAddress('127.0.0.0'),
          userAgent: UserAgent(''),
          lastActivatedAt: PreciseDateTime.now(),
        ),
        UserId(json['userId']),
      );
    } catch (_) {
      // No-op.
    }

    rethrow;
  }
}