import 'package:fixnum/fixnum.dart'; import 'package:app/pb/rpc_create_account.pb.dart'; import 'package:app/pb/rpc_get_account_info.pb.dart'; import 'package:app/pb/rpc_login.pb.dart'; import 'package:app/pb/service_df.pbgrpc.dart'; import 'package:grpc/grpc.dart'; class Client { String baseUrl = 'localhost'; int port = 9090; Map metadata = {'Authorization': ''}; String accessToken = ''; Int64 accountId = Int64(); dfClient stub = dfClient( ClientChannel('10.0.2.2', port: 9090, options: const ChannelOptions( credentials: ChannelCredentials.insecure(), )), options: CallOptions( timeout: const Duration(seconds: 5), ), ); Future main(List args) async {} Future createAccount( CreateAccountRequest request) async { try { final response = stub.createAccount(request); return response; } catch (e) { print('caught error: $e'); } return CreateAccountResponse(); } Future login( {required String email, required String password, required Function onError, required Function onSuccess}) async { LoginResponse response = LoginResponse(); try { response = await stub.login(LoginRequest( email: email, password: password, )); accessToken = response.accessToken; accountId = response.accountId; metadata['Authorization'] = 'Bearer ${response.accessToken}'; print('auth: ${metadata['Authorization']}'); onSuccess(); // return response; } on GrpcError catch (e) { print('caught error: ${e.message}'); metadata['Authorization'] = ''; onError(); } catch (e) { print('caught error: ${e}'); metadata['Authorization'] = ''; onError(); } return response; } Future getAccountInfo(GetAccountInfoRequest request, {required Function onError}) async { try { // Map metadata = {'Authorization': 'Bearer $token'}; final response = await stub.getAccountInfo( request, options: CallOptions( metadata: metadata, ), ); return response; } on GrpcError catch (e) { print('caught error: ${e.message}'); onError(); } catch (e) { print('caught error: $e'); onError(); } return GetAccountInfoResponse(); } }