mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-15 00:12:22 -06:00
feat: Implement switching between accounts (multi user support), still WIP
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'paperless_ui_settings_model.g.dart';
|
||||
|
||||
@JsonSerializable(fieldRename: FieldRename.snake)
|
||||
class PaperlessUiSettingsModel {
|
||||
final String displayName;
|
||||
|
||||
PaperlessUiSettingsModel({required this.displayName});
|
||||
factory PaperlessUiSettingsModel.fromJson(Map<String, dynamic> json) =>
|
||||
_$PaperlessUiSettingsModelFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$PaperlessUiSettingsModelToJson(this);
|
||||
}
|
||||
@@ -1,7 +1,9 @@
|
||||
import 'package:paperless_api/src/models/paperless_server_information_model.dart';
|
||||
import 'package:paperless_api/src/models/paperless_server_statistics_model.dart';
|
||||
import 'package:paperless_api/src/models/paperless_ui_settings_model.dart';
|
||||
|
||||
abstract class PaperlessServerStatsApi {
|
||||
Future<PaperlessServerInformationModel> getServerInformation();
|
||||
Future<PaperlessServerStatisticsModel> getServerStatistics();
|
||||
Future<PaperlessUiSettingsModel> getUiSettings();
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import 'package:http/http.dart';
|
||||
import 'package:paperless_api/src/models/paperless_server_exception.dart';
|
||||
import 'package:paperless_api/src/models/paperless_server_information_model.dart';
|
||||
import 'package:paperless_api/src/models/paperless_server_statistics_model.dart';
|
||||
import 'package:paperless_api/src/models/paperless_ui_settings_model.dart';
|
||||
|
||||
import 'paperless_server_stats_api.dart';
|
||||
|
||||
@@ -21,15 +22,12 @@ class PaperlessServerStatsApiImpl implements PaperlessServerStatsApi {
|
||||
@override
|
||||
Future<PaperlessServerInformationModel> getServerInformation() async {
|
||||
final response = await client.get("/api/ui_settings/");
|
||||
final version = response
|
||||
.headers[PaperlessServerInformationModel.versionHeader]?.first ??
|
||||
'unknown';
|
||||
final apiVersion = int.tryParse(response
|
||||
.headers[PaperlessServerInformationModel.apiVersionHeader]?.first ??
|
||||
'1');
|
||||
final version =
|
||||
response.headers[PaperlessServerInformationModel.versionHeader]?.first ?? 'unknown';
|
||||
final apiVersion = int.tryParse(
|
||||
response.headers[PaperlessServerInformationModel.apiVersionHeader]?.first ?? '1');
|
||||
final String username = response.data['username'];
|
||||
final String host = response
|
||||
.headers[PaperlessServerInformationModel.hostHeader]?.first ??
|
||||
final String host = response.headers[PaperlessServerInformationModel.hostHeader]?.first ??
|
||||
response.headers[PaperlessServerInformationModel.hostHeader]?.first ??
|
||||
('${response.requestOptions.uri.host}:${response.requestOptions.uri.port}');
|
||||
return PaperlessServerInformationModel(
|
||||
@@ -48,4 +46,13 @@ class PaperlessServerStatsApiImpl implements PaperlessServerStatsApi {
|
||||
}
|
||||
throw const PaperlessServerException.unknown();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<PaperlessUiSettingsModel> getUiSettings() async {
|
||||
final response = await client.get("/api/ui_settings/");
|
||||
if (response.statusCode == 200) {
|
||||
return PaperlessUiSettingsModel.fromJson(response.data);
|
||||
}
|
||||
throw const PaperlessServerException.unknown();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user