createNewCustomer method

Future<Customer> createNewCustomer({
  1. required String email,
  2. required String name,
})

Used for creating a new customer on Rapyd.

Implementation

Future<Customer> createNewCustomer({
  required String email,
  required String name,
}) async {
  late Customer customerDetails;

  var method = "post";
  var checkoutEndpoint = '/v1/customers';

  final checkoutURL = Uri.parse(baseURL + checkoutEndpoint);

  var data = jsonEncode({
    "email": email,
    "name": name,
    "metadata": {
      "merchant_defined": true,
    },
  });

  final headers = _generateHeader(
    method: method,
    endpoint: checkoutEndpoint,
    body: data,
  );

  try {
    var response = await http.post(
      checkoutURL,
      headers: headers,
      body: data,
    );

    if (response.statusCode == 200) {
      dev.log('CUSTOMER SUCCESSFULLY CREATED');
      customerDetails = Customer.fromJson(jsonDecode(response.body));
    } else {
      throw ('Failed to create new customer, status ${response.statusCode}');
    }
  } catch (e) {
    dev.log('Failed to create a customer');
  }

  return customerDetails;
}