import 'dart:collection'; import 'package:wonders/common_libs.dart'; import 'package:wonders/logic/common/string_utils.dart'; import 'package:wonders/logic/data/artifact_data.dart'; import 'package:wonders/logic/met_api_service.dart'; import 'package:wonders/logic/common/http_client.dart'; class MetAPILogic { final HashMap _artifactCache = HashMap(); MetAPIService get service => GetIt.I.get(); /// Returns artifact data by ID. Returns null if artifact cannot be found. */ Future getArtifactByID(String id) async { if (_artifactCache.containsKey(id)) return _artifactCache[id]; ServiceResult result = (await service.getObjectByID(id)); if (!result.success) throw StringUtils.supplant($strings.artifactDetailsErrorNotFound, {'{artifactId}': id}); ArtifactData? artifact = result.content; return _artifactCache[id] = artifact; } }