getAccounts method

Future<List<LinkCustomerAccount>> getAccounts({
  1. required String customerId,
})

Implementation

Future<List<LinkCustomerAccount>> getAccounts(
    {required String customerId}) async {
  if (customerId.isEmpty || customerId.length != 36) {
    throw Exception('customerId parameter must be a valid UUID string.');
  }
  final uri = Uri(
    scheme: _scheme,
    host: _host,
    path: '/v1/customers/$customerId/accounts',
  );
  final response = await http.get(uri, headers: {
    'content-type': 'application/json',
    'Authorization': 'Bearer $accessToken',
  });
  if (response.statusCode >= 200 && response.statusCode < 300) {
    final jsonResponse = jsonDecode(response.body) as Map<String, dynamic>;
    final List<LinkCustomerAccount> accounts = [];
    for (Map<String, dynamic> accountJson in jsonResponse['accountDetails']) {
      accounts.add(LinkCustomerAccount.fromJson(accountJson));
    }
    return accounts;
  } else {
    throw Exception(
        'StatusCode:${response.statusCode}\n` + `ErrorMessage: ${response.reasonPhrase}\n');
  }
}