selfprivacy.org.app/lib/logic/api_maps/server.dart

48 lines
1.1 KiB
Dart
Raw Normal View History

2021-01-21 23:01:42 +02:00
import 'dart:convert';
import 'dart:io';
2021-01-21 09:35:38 +02:00
import 'package:dio/dio.dart';
import 'api_map.dart';
class ServerApi extends ApiMap {
2021-01-21 23:01:42 +02:00
ServerApi(String domainName) {
loggedClient.options = BaseOptions(
baseUrl: 'https://api.$domainName',
);
}
Future<bool> isHttpServerWorking() async {
bool res;
Response response;
try {
response = await loggedClient.get('/serviceStatus');
res = response.statusCode == HttpStatus.ok;
} catch (e) {
res = false;
2021-01-21 09:35:38 +02:00
}
2021-01-21 23:01:42 +02:00
return res;
2021-01-21 09:35:38 +02:00
}
2021-01-21 23:01:42 +02:00
Future<String> getDkim(String domainName) async {
var response = await loggedClient.get(
'/getDKIM',
options: Options(responseType: ResponseType.plain),
);
return _decodeAndCutData(response.data, domainName);
}
}
String _decodeAndCutData(String text, String domainName) {
var decodedTextString = text.substring(1, text.length - 1);
var stringToBase64 = utf8.fuse(base64);
return stringToBase64
.decode(decodedTextString)
.replaceAll("selector._domainkey IN TXT ( ", "")
.replaceAll("\"\n \"", "")
.replaceAll(' ) ; ----- DKIM key selector for $domainName\n', '');
2021-01-21 09:35:38 +02:00
}