mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2024-11-08 01:43:13 +00:00
58 lines
1.6 KiB
Dart
58 lines
1.6 KiB
Dart
import 'package:graphql/client.dart';
|
|
import 'package:selfprivacy/config/get_it_config.dart';
|
|
import 'package:selfprivacy/logic/api_maps/graphql_maps/api_map.dart';
|
|
import 'package:selfprivacy/logic/api_maps/graphql_maps/schema/get_api_tokens.graphql.dart';
|
|
import 'package:selfprivacy/logic/api_maps/graphql_maps/schema/get_api_version.graphql.dart';
|
|
import 'package:selfprivacy/logic/models/hive/server_domain.dart';
|
|
import 'package:selfprivacy/logic/models/json/api_token.dart';
|
|
|
|
class ServerApi extends ApiMap {
|
|
ServerApi({
|
|
this.hasLogger = false,
|
|
this.isWithToken = true,
|
|
this.authToken = '',
|
|
}) {
|
|
final ServerDomain? serverDomain = getIt<ApiConfigModel>().serverDomain;
|
|
rootAddress = serverDomain?.domainName ?? '';
|
|
}
|
|
@override
|
|
bool hasLogger;
|
|
@override
|
|
bool isWithToken;
|
|
@override
|
|
String authToken;
|
|
@override
|
|
String? rootAddress;
|
|
|
|
Future<String?> getApiVersion() async {
|
|
QueryResult response;
|
|
String? apiVersion;
|
|
|
|
final GraphQLClient client = await getClient();
|
|
try {
|
|
response = await client.query$GetApiVersionQuery();
|
|
apiVersion = response.data!['api']['version'];
|
|
} catch (e) {
|
|
print(e);
|
|
}
|
|
return apiVersion;
|
|
}
|
|
|
|
Future<List<ApiToken>> getApiTokens() async {
|
|
QueryResult response;
|
|
List<ApiToken> tokens = [];
|
|
|
|
try {
|
|
final GraphQLClient client = await getClient();
|
|
response = await client.query$GetApiTokensQuery();
|
|
tokens = response.data!['api']['devices']
|
|
.map<ApiToken>((final e) => ApiToken.fromJson(e))
|
|
.toList();
|
|
} catch (e) {
|
|
print(e);
|
|
}
|
|
|
|
return tokens;
|
|
}
|
|
}
|