app-starlock/lib/network/start_chart_api.dart

125 lines
3.7 KiB
Dart
Raw Normal View History

2024-11-28 14:57:49 +08:00
import 'dart:convert';
import 'package:get/get.dart';
import 'package:star_lock/network/api_provider.dart';
import 'package:star_lock/network/api_provider_base.dart';
2025-01-23 14:30:31 +08:00
import 'package:star_lock/talk/starChart/entity/relay_info_entity.dart';
import 'package:star_lock/talk/starChart/entity/report_information_data.dart';
import 'package:star_lock/talk/starChart/entity/star_chart_register_node_entity.dart';
2025-02-12 11:01:17 +08:00
import 'package:star_lock/tools/storage.dart';
2024-11-28 14:57:49 +08:00
class StartChartApi extends BaseProvider {
// 星图url
2025-02-12 11:01:17 +08:00
String _startChartHost = '';
2024-11-28 14:57:49 +08:00
2025-01-20 14:13:56 +08:00
static StartChartApi get to => Get.put(StartChartApi());
2024-11-28 14:57:49 +08:00
// 设置星图host
set startChartHost(String value) {
_startChartHost = value;
}
// 获取星图host
String get startChartHost => _startChartHost;
2024-11-28 14:57:49 +08:00
// 星图--注册节点
Future<StarChartRegisterNodeEntity> starChartRegisterNode({
required String product,
required String model,
required String name,
required String unique,
}) async {
2025-02-12 11:01:17 +08:00
final loginData = await Storage.getLoginData();
// 获取星图url
if (loginData != null &&
loginData?.starchart != null &&
loginData?.starchart?.scdUrl != null &&
loginData?.starchart?.scdUrl != '') {
StartChartApi.to.startChartHost =
loginData!.starchart!.scdUrl ?? StartChartApi.to.startChartHost;
}
2024-11-28 14:57:49 +08:00
final response = await post(
_startChartHost + starChartRegisterNodeURL.toUrl,
jsonEncode(<String, dynamic>{
'product': product,
'model': model,
'name': name,
'unique': unique,
}),
isUnShowLoading: true,
isUserBaseUrl: false,
);
return StarChartRegisterNodeEntity.fromJson(response.body);
}
// 星图--中继查询
Future<RelayInfoEntity> relayQueryInfo() async {
2025-02-12 11:01:17 +08:00
final loginData = await Storage.getLoginData();
// 获取星图url
if (loginData != null &&
loginData?.starchart != null &&
loginData?.starchart?.scdUrl != null &&
loginData?.starchart?.scdUrl != '') {
StartChartApi.to.startChartHost =
loginData!.starchart!.scdUrl ?? StartChartApi.to.startChartHost;
}
2024-11-28 14:57:49 +08:00
final response = await get(
_startChartHost + relayQueryInfoURL.toUrl,
isUnShowLoading: true,
isUserBaseUrl: false,
);
return RelayInfoEntity.fromJson(response.body);
}
// 星图--上报信息至发现服务
Future<Response> reportInformation({
2024-11-28 14:57:49 +08:00
required ReportInformationData reportInformationData,
}) async {
2025-02-12 11:01:17 +08:00
final loginData = await Storage.getLoginData();
// 获取星图url
if (loginData != null &&
loginData?.starchart != null &&
loginData?.starchart?.scdUrl != null &&
loginData?.starchart?.scdUrl != '') {
StartChartApi.to.startChartHost =
loginData!.starchart!.scdUrl ?? StartChartApi.to.startChartHost;
}
2024-11-28 14:57:49 +08:00
final response = await post(
_startChartHost + reportInformationDataURL.toUrl,
jsonEncode(reportInformationData.toJson()),
isUnShowLoading: true,
isUserBaseUrl: false,
);
return response;
2024-11-28 14:57:49 +08:00
}
// 星图--解析对端信息
Future<Response> analyzeInformationOtherEnd({
required String peerId,
}) async {
2025-02-12 11:01:17 +08:00
final loginData = await Storage.getLoginData();
// 获取星图url
if (loginData != null &&
loginData?.starchart != null &&
loginData?.starchart?.scdUrl != null &&
loginData?.starchart?.scdUrl != '') {
StartChartApi.to.startChartHost =
loginData!.starchart!.scdUrl ?? StartChartApi.to.startChartHost;
}
final response = await get(
_startChartHost + analyzeInformationOtherEndURL.toUrl + '?id=$peerId',
isUnShowLoading: true,
isUserBaseUrl: false,
);
return response;
}
2024-11-28 14:57:49 +08:00
}