softplayer-web/lib/api/grpc/accounts.dart

89 lines
2.1 KiB
Dart
Raw Normal View History

2024-04-05 15:14:56 +00:00
import 'package:grpc/grpc_web.dart';
import 'package:softplayer_dart_proto/main.dart';
2024-04-05 15:57:46 +00:00
class AccountLocalData {
AccountLocalData({
required this.uuid,
required this.token,
});
String uuid;
String token;
}
2024-04-19 11:19:44 +00:00
2024-04-05 15:14:56 +00:00
class AccountsGrpc {
final GrpcWebClientChannel channel;
late AccountsClient accountsStub;
AccountsGrpc({
required this.channel,
});
void init() {
accountsStub = AccountsClient(channel);
}
2024-04-19 11:19:44 +00:00
Future<AccountLocalData> signIn(
String username, String email, String password) async {
2024-04-05 15:14:56 +00:00
final request = AccountWithPassword(
data: AccountData(
name: username,
email: email,
),
password: AccountPassword(
password: password,
));
try {
final response = await accountsStub.signIn(request);
2024-04-05 15:57:46 +00:00
return AccountLocalData(uuid: response.id.id, token: response.token);
2024-04-05 15:14:56 +00:00
} catch (e) {
rethrow;
}
}
2024-04-19 11:19:44 +00:00
Future<AccountLocalData> signUp(
String username, String email, String password) async {
2024-04-05 15:14:56 +00:00
final request = AccountWithPassword(
data: AccountData(
name: username,
email: email,
),
password: AccountPassword(
password: password,
));
try {
final response = await accountsStub.signUp(request);
2024-04-05 15:57:46 +00:00
return AccountLocalData(uuid: response.id.id, token: response.token);
2024-04-05 15:14:56 +00:00
} catch (e) {
rethrow;
}
}
2024-05-22 11:03:44 +00:00
Future<Empty> resetPassword(String username, String email) async {
final request = AccountData(
name: username,
email: email,
);
try {
final response = await accountsStub.resetPassword(request);
return response;
} catch (e) {
rethrow;
}
}
Future<Empty> newPassword(
String username, String code, String newPassword) async {
final request = AccountWithPasswordAndCode(
data: AccountData(
name: username,
),
code: code,
password: AccountPassword(password: newPassword));
try {
final response = await accountsStub.newPassword(request);
return response;
} catch (e) {
rethrow;
}
}
2024-04-05 15:14:56 +00:00
}