bank account connect to dataconnect with staffid
This commit is contained in:
@@ -143,10 +143,6 @@ class AuthRepositoryImpl implements AuthRepositoryInterface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final String email = user?.email ?? '';
|
final String email = user?.email ?? '';
|
||||||
if (mode != AuthMode.signup && email.isEmpty) {
|
|
||||||
await firebaseAuth.signOut();
|
|
||||||
throw Exception('User email is missing in profile data.');
|
|
||||||
}
|
|
||||||
|
|
||||||
//TO-DO: create(registration) user and staff account
|
//TO-DO: create(registration) user and staff account
|
||||||
//TO-DO: save user data locally
|
//TO-DO: save user data locally
|
||||||
|
|||||||
@@ -19,72 +19,15 @@ class BankAccountRepositoryImpl implements BankAccountRepository {
|
|||||||
Future<List<BankAccount>> getAccounts() async {
|
Future<List<BankAccount>> getAccounts() async {
|
||||||
final auth.User? user = firebaseAuth.currentUser;
|
final auth.User? user = firebaseAuth.currentUser;
|
||||||
if (user == null) throw Exception('User not authenticated');
|
if (user == null) throw Exception('User not authenticated');
|
||||||
|
final String? staffId = StaffSessionStore.instance.session?.staff?.id;
|
||||||
|
if (staffId == null || staffId.isEmpty) {
|
||||||
|
throw Exception('Staff profile is missing.');
|
||||||
|
}
|
||||||
|
|
||||||
// return some mock data for now
|
final QueryResult<GetAccountsByOwnerIdData, GetAccountsByOwnerIdVariables>
|
||||||
return [
|
result = await dataConnect
|
||||||
BankAccount(
|
.getAccountsByOwnerId(ownerId: staffId)
|
||||||
id: '1',
|
.execute();
|
||||||
userId: user.uid,
|
|
||||||
bankName: 'Mock Bank',
|
|
||||||
accountNumber: '****1234',
|
|
||||||
accountName: 'My Checking Account',
|
|
||||||
type: BankAccountType.checking,
|
|
||||||
last4: '1234',
|
|
||||||
isPrimary: true,
|
|
||||||
),
|
|
||||||
BankAccount(
|
|
||||||
id: '2',
|
|
||||||
userId: user.uid,
|
|
||||||
bankName: 'Mock Bank',
|
|
||||||
accountNumber: '****5678',
|
|
||||||
accountName: 'My Savings Account',
|
|
||||||
type: BankAccountType.savings,
|
|
||||||
last4: '5678',
|
|
||||||
isPrimary: false,
|
|
||||||
),
|
|
||||||
BankAccount(
|
|
||||||
id: '3',
|
|
||||||
userId: user.uid,
|
|
||||||
bankName: 'Mock Bank',
|
|
||||||
accountNumber: '****1234',
|
|
||||||
accountName: 'My Checking Account',
|
|
||||||
type: BankAccountType.checking,
|
|
||||||
last4: '1234',
|
|
||||||
isPrimary: true,
|
|
||||||
),
|
|
||||||
BankAccount(
|
|
||||||
id: '4',
|
|
||||||
userId: user.uid,
|
|
||||||
bankName: 'Mock Bank',
|
|
||||||
accountNumber: '****5678',
|
|
||||||
accountName: 'My Savings Account',
|
|
||||||
type: BankAccountType.savings,
|
|
||||||
last4: '5678',
|
|
||||||
isPrimary: false,
|
|
||||||
),
|
|
||||||
BankAccount(
|
|
||||||
id: '5',
|
|
||||||
userId: user.uid,
|
|
||||||
bankName: 'Mock Bank',
|
|
||||||
accountNumber: '****1234',
|
|
||||||
accountName: 'My Checking Account',
|
|
||||||
type: BankAccountType.checking,
|
|
||||||
last4: '1234',
|
|
||||||
isPrimary: true,
|
|
||||||
),
|
|
||||||
BankAccount(
|
|
||||||
id: '6',
|
|
||||||
userId: user.uid,
|
|
||||||
bankName: 'Mock Bank',
|
|
||||||
accountNumber: '****5678',
|
|
||||||
accountName: 'My Savings Account',
|
|
||||||
type: BankAccountType.savings,
|
|
||||||
last4: '5678',
|
|
||||||
isPrimary: false,
|
|
||||||
),
|
|
||||||
];
|
|
||||||
|
|
||||||
final QueryResult<GetAccountsByOwnerIdData, GetAccountsByOwnerIdVariables> result = await dataConnect.getAccountsByOwnerId(ownerId: user.uid).execute();
|
|
||||||
|
|
||||||
return result.data.accounts.map((GetAccountsByOwnerIdAccounts account) {
|
return result.data.accounts.map((GetAccountsByOwnerIdAccounts account) {
|
||||||
return BankAccount(
|
return BankAccount(
|
||||||
@@ -104,12 +47,16 @@ class BankAccountRepositoryImpl implements BankAccountRepository {
|
|||||||
Future<void> addAccount(BankAccount account) async {
|
Future<void> addAccount(BankAccount account) async {
|
||||||
final auth.User? user = firebaseAuth.currentUser;
|
final auth.User? user = firebaseAuth.currentUser;
|
||||||
if (user == null) throw Exception('User not authenticated');
|
if (user == null) throw Exception('User not authenticated');
|
||||||
|
final String? staffId = StaffSessionStore.instance.session?.staff?.id;
|
||||||
|
if (staffId == null || staffId.isEmpty) {
|
||||||
|
throw Exception('Staff profile is missing.');
|
||||||
|
}
|
||||||
|
|
||||||
await dataConnect.createAccount(
|
await dataConnect.createAccount(
|
||||||
bank: account.bankName,
|
bank: account.bankName,
|
||||||
type: _mapDomainType(account.type),
|
type: _mapDomainType(account.type),
|
||||||
last4: account.last4 ?? account.accountNumber.substring(account.accountNumber.length - 4),
|
last4: account.last4 ?? account.accountNumber.substring(account.accountNumber.length - 4),
|
||||||
ownerId: user.uid,
|
ownerId: staffId,
|
||||||
).isPrimary(account.isPrimary).execute();
|
).isPrimary(account.isPrimary).execute();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user