feat: support prowlarr connection

This commit is contained in:
Simon Ding
2024-10-20 16:21:58 +08:00
parent 0e6465593b
commit b317636a8a
15 changed files with 281 additions and 12 deletions

View File

@@ -40,6 +40,7 @@ class APIs {
static final addImportlistUrl = "$_baseUrl/api/v1/importlist/add";
static final deleteImportlistUrl = "$_baseUrl/api/v1/importlist/delete";
static final getAllImportlists = "$_baseUrl/api/v1/importlist/";
static final prowlarrUrl = "$_baseUrl/api/v1/setting/prowlarr";
static final notifierAllUrl = "$_baseUrl/api/v1/notifier/all";
static final notifierDeleteUrl = "$_baseUrl/api/v1/notifier/id/";

View File

@@ -25,6 +25,10 @@ var importlistProvider =
AsyncNotifierProvider.autoDispose<ImportListData, List<ImportList>>(
ImportListData.new);
var prowlarrSettingDataProvider =
AsyncNotifierProvider.autoDispose<ProwlarrSettingData, ProwlarrSetting>(
ProwlarrSettingData.new);
class EditSettingData extends AutoDisposeAsyncNotifier<GeneralSetting> {
@override
FutureOr<GeneralSetting> build() async {
@@ -503,3 +507,38 @@ class ImportListData extends AutoDisposeAsyncNotifier<List<ImportList>> {
ref.invalidateSelf();
}
}
class ProwlarrSetting {
final String apiKey;
final String url;
ProwlarrSetting({required this.apiKey, required this.url});
factory ProwlarrSetting.fromJson(Map<String, dynamic> json) {
return ProwlarrSetting(apiKey: json["api_key"], url: json["url"]);
}
Map<String, dynamic> tojson() => {"api_key": apiKey, "url": url};
}
class ProwlarrSettingData extends AutoDisposeAsyncNotifier<ProwlarrSetting> {
@override
FutureOr<ProwlarrSetting> build() async {
final dio = APIs.getDio();
var resp = await dio.get(APIs.prowlarrUrl);
var sp = ServerResponse.fromJson(resp.data);
if (sp.code != 0) {
throw sp.message;
}
var se = ProwlarrSetting.fromJson(sp.data);
return se;
}
Future<void> save(ProwlarrSetting ps) async {
final dio = APIs.getDio();
var resp = await dio.post(APIs.prowlarrUrl, data: ps.tojson());
var sp = ServerResponse.fromJson(resp.data);
if (sp.code != 0) {
throw sp.message;
}
ref.invalidateSelf();
}
}