dapi_connect 0.0.1 dapi_connect: ^0.0.1 copied to clipboard
Financial APIs to connect users' bank accounts.
import 'package:flutter/material.dart';
import 'package:dapi_connect/dapi_connect.dart';
void main() {
runApp(MyApp());
}
class Button extends StatelessWidget {
final void Function() onPressed;
final String text;
final bool visible;
const Button(
{@required this.onPressed, @required this.text, this.visible = true});
@override
Widget build(BuildContext context) {
Widget button = ElevatedButton(onPressed: onPressed, child: Text(text));
return Visibility(child: button, visible: visible);
}
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
DapiClient client;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Dapi Connect'),
),
body: ListView(
padding: EdgeInsets.all(20),
children: [
Button(
onPressed: () => initClient(),
text: "Init Client",
visible: client == null),
Button(
onPressed: () => presentConnect(),
text: "Present Connect",
visible: client != null),
Button(
onPressed: () => presentAutoFlow(),
text: "Present AutoFlow",
visible: client != null),
Button(
onPressed: () => print(DapiClient.instances),
text: "Client instances",
visible: client != null),
Button(
onPressed: () => getConnections(),
text: "Get Connections",
visible: client != null),
Button(
onPressed: () => getIdentity(),
text: "Get Identity",
visible: client != null),
Button(
onPressed: () => getAccounts(),
text: "Get Accounts",
visible: client != null),
Button(
onPressed: () => getBalance(),
text: "Get Balance",
visible: client != null),
Button(
onPressed: () => getTransactions(),
text: "Get Transactions",
visible: client != null),
Button(
onPressed: () => getBeneficiaries(),
text: "Get Beneficiaries",
visible: client != null),
Button(
onPressed: () => createBeneficiary(),
text: "Create Transfer With Receiver ID (Already Added)",
visible: client != null),
Button(
onPressed: () => createBeneficiary(),
text: "Create Transfer With Account Number",
visible: client != null),
Button(
onPressed: () => createBeneficiary(),
text: "Create Transfer With IBAN",
visible: client != null),
Button(
onPressed: () => createBeneficiary(),
text: "Create Beneficiaries",
visible: client != null),
Button(
onPressed: () => getAccountsMetadata(),
text: "Get Account Metadata",
visible: client != null),
Button(
onPressed: () => client.auth.delinkUser(),
text: "Delink User",
visible: client != null),
],
),
),
);
}
void initClient() {
DapiConfigurations configurations = DapiConfigurations(
'8900eff4837592670c08558c7a6467337b5155145856d693f1e8275455889f7f',
'http://10.0.2.2:4561',
['AE'],
'Ennabah');
configurations.environment = DapiEnvironment.production;
setState(() {
client = DapiClient(configurations);
});
}
void presentConnect() {
client.connect.present();
}
void presentAutoFlow() {
client.autoFlow.present();
}
void getIdentity() async {
// ignore: unused_local_variable
DapiIdentity identity = await client.data.getIdentity();
print(identity);
}
void getAccounts() async {
// ignore: unused_local_variable
List<DapiAccount> accounts = await client.data.getAccounts();
print(accounts);
}
void getBalance() async {
List<DapiConnection> connections = await client.connect.getConnections();
// ignore: unused_local_variable
DapiBalance balance =
await client.data.getBalance(accountID: connections[0].accounts[0].id);
print(balance);
}
void getConnections() async {
List<DapiConnection> connections = await client.connect.getConnections();
print(connections);
client.userID = connections.first.userID;
print(client.getUserID());
}
void getTransactions() async {
List<DapiConnection> connections = await client.connect.getConnections();
DateTime from = DateTime(2019, 5, 28);
DateTime to = DateTime.now();
// ignore: unused_local_variable
List<DapiTransaction> transactions = await client.data.getTransactions(
accountID: connections[0].accounts[0].id, fromDate: from, toDate: to);
print(transactions);
}
void getBeneficiaries() async {
// ignore: unused_local_variable
List<DapiBeneficiary> beneficiaries =
await client.payment.getBeneficiaries();
print(beneficiaries);
}
void createBeneficiary() async {
DapiBeneficiaryInfo beneficiaryInfo = DapiBeneficiaryInfo(
linesAddress: DapiLineAddress(
line1: "baniyas road", line2: "dubai", line3: "united arab emirates"),
accountNumber: "0959040184901",
name: "Helal Tariq",
bankName: "Emirates NBD Bank PJSC",
swiftCode: "EBILAEAD",
iban: "AE140260000959040184901",
phoneNumber: "0585859206",
country: "UNITED ARAB EMIRATES",
branchAddress: "Baniyas Road Deira PO Box 777 Dubai UAE",
branchName: "Emirates NBD Bank PJSC",
);
DapiResult result = await client.payment
.createBeneficiary(beneficiaryInfo: beneficiaryInfo);
print(result);
}
void createTransferWithReceiverID() async {
List<DapiConnection> connections = await client.connect.getConnections();
List<DapiBeneficiary> beneficiaries =
await client.payment.getBeneficiaries();
DapiResult result = await client.payment.createTransferWithReceiverID(
beneficiaries[0].id,
senderID: connections[0].accounts[0].id,
amount: 10);
print(result);
}
void createTransferWithAccountNumber() async {
List<DapiConnection> connections = await client.connect.getConnections();
DapiResult result = await client.payment.createTransferWithAccountNumber(
'recipient account number',
senderID: connections[0].accounts[0].id,
amount: 10,
name: 'recipient name');
print(result);
}
void createTransferWithIBAN() async {
List<DapiConnection> connections = await client.connect.getConnections();
DapiResult result = await client.payment.createTransferWithIBAN('IBAN',
senderID: connections[0].accounts[0].id,
amount: 10,
name: 'recipient name');
print(result);
}
void getAccountsMetadata() async {
DapiMetadata metadata = await client.metadata.getAccountMetadata();
print(metadata);
}
}