mirror of
https://github.com/gskinnerTeam/flutter-wonderous-app.git
synced 2025-08-06 18:24:29 +08:00
Initial public commit
This commit is contained in:
23
lib/logic/met_api_logic.dart
Normal file
23
lib/logic/met_api_logic.dart
Normal file
@ -0,0 +1,23 @@
|
||||
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<String, ArtifactData?> _artifactCache = HashMap();
|
||||
|
||||
MetAPIService get service => GetIt.I.get<MetAPIService>();
|
||||
|
||||
/// Returns artifact data by ID. Returns null if artifact cannot be found. */
|
||||
Future<ArtifactData?> getArtifactByID(String id) async {
|
||||
if (_artifactCache.containsKey(id)) return _artifactCache[id];
|
||||
ServiceResult<ArtifactData?> result = (await service.getObjectByID(id));
|
||||
if (!result.success) throw StringUtils.supplant($strings.artifactDetailsErrorNotFound, {'{artifactId}': id});
|
||||
ArtifactData? artifact = result.content;
|
||||
return _artifactCache[id] = artifact;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user