get method

  1. @override
Future<ChatResponse?> get(
  1. String key
)
override

Returns the cached ChatResponse for key, or null if not found or expired.

Implementation

@override
Future<ChatResponse?> get(String key) async {
  final (jsonFile, expiryFile) = _filesFor(key);
  if (!jsonFile.existsSync() || !expiryFile.existsSync()) return null;

  final expiryStr = await expiryFile.readAsString();
  final expiry = DateTime.tryParse(expiryStr.trim());
  if (expiry == null || _clock().isAfter(expiry)) {
    await _deleteEntry(jsonFile, expiryFile);
    return null;
  }

  final json =
      jsonDecode(await jsonFile.readAsString()) as Map<String, dynamic>;
  return _responseFromJson(json);
}