import 'package:grpc/grpc_web.dart'; import 'package:softplayer_dart_proto/accounts/accounts_v1.pbgrpc.dart'; import 'package:softplayer_dart_proto/main.dart'; class AccountLocalData { AccountLocalData({ required this.uuid, required this.token, }); String uuid; String token; } class AccountsGrpc { final GrpcWebClientChannel channel; late AccountsClient accountsStub; AccountsGrpc({ required this.channel, }); void init() { accountsStub = AccountsClient(channel); } Future signIn( String username, String email, String password) async { final request = AccountWithPassword( data: AccountData( name: username, email: email, ), password: AccountPassword( password: password, )); try { final response = await accountsStub.signIn(request); return AccountLocalData(uuid: response.id.id, token: response.token); } catch (e) { rethrow; } } Future signUp( String username, String email, String password) async { final request = AccountWithPassword( data: AccountData( name: username, email: email, ), password: AccountPassword( password: password, )); try { final response = await accountsStub.signUp(request); return AccountLocalData(uuid: response.id.id, token: response.token); } catch (e) { rethrow; } } }