customerSearch method

Future<CustomerModel?> customerSearch({
  1. required UserModel? userModel,
  2. String path = "/customers/search",
})

Implementation

Future<CustomerModel?> customerSearch({
  required UserModel? userModel,
  String path = "/customers/search",
}) {
  final Map<String, String> queryStringParams = {
    'email': '${userModel?.email}',
  };
  Future<CustomerModel?> futureCustomerModel = httpService
      .getWithCredentials(path: path, queryStringParams: queryStringParams)
      .then((http.Response? response) {
    if (response?.statusCode == 200) {
      final decodeData = json.decode(response!.body);
      if (decodeData['results'] != null &&
          decodeData['results'].runtimeType.toString().contains('List') &&
          decodeData['results'].length > 0) {
        dynamic data = decodeData['results'][0];

        if (data['cards'].length > 1) {
          String? defaultCard = data['default_card'];
          for (var x = 0; x < data['cards'].length; x++) {
            if (defaultCard == data['cards'][x]['id']) {
              dynamic first = (data['cards'] as List).removeAt(x);
              (data['cards'] as List).add(first);
            }
          }
        }
        CustomerModel customerModel = CustomerModel.fromJson(data);
        return customerModel;
      }
      return null;
    }
    return null;
  });
  return futureCustomerModel;
}