feat(account): 接入个人中心接口模型
This commit is contained in:
1 parent
7d68699523
commit
44f6feb249
6 files changed
+501
No files matched your search
@@ -0,0 +1,47 @@
|
||||
// Author: fruit.com.cn
|
||||
|
||||
import '../models/account_device.dart';
|
||||
import '../models/account_export.dart';
|
||||
import '../models/account_profile.dart';
|
||||
import '../remote/account_api.dart';
|
||||
|
||||
/// 账号中心的数据来源。
|
||||
abstract interface class AccountRepository {
|
||||
Future<AccountProfile> profile();
|
||||
|
||||
Future<AccountProfile> updateProfile(AccountProfileUpdate update);
|
||||
|
||||
Future<List<AccountDevice>> devices();
|
||||
|
||||
Future<AccountExport> export();
|
||||
|
||||
Future<DateTime?> deactivate(String reason);
|
||||
|
||||
Future<void> cancelDeactivation();
|
||||
}
|
||||
|
||||
/// HTTP 实现。
|
||||
class HttpAccountRepository implements AccountRepository {
|
||||
const HttpAccountRepository(this._api);
|
||||
|
||||
final AccountApi _api;
|
||||
|
||||
@override
|
||||
Future<AccountProfile> profile() => _api.profile();
|
||||
|
||||
@override
|
||||
Future<AccountProfile> updateProfile(AccountProfileUpdate update) =>
|
||||
_api.updateProfile(update);
|
||||
|
||||
@override
|
||||
Future<List<AccountDevice>> devices() => _api.devices();
|
||||
|
||||
@override
|
||||
Future<AccountExport> export() => _api.export();
|
||||
|
||||
@override
|
||||
Future<DateTime?> deactivate(String reason) => _api.deactivate(reason: reason);
|
||||
|
||||
@override
|
||||
Future<void> cancelDeactivation() => _api.cancelDeactivation();
|
||||
}
|
||||
Reference in new issue
Block a user