addDeliveryAddress method

void addDeliveryAddress(
  1. BuildContext context
)

Implementation

void addDeliveryAddress(BuildContext context,) async {
  FocusScope.of(context).requestFocus(FocusNode());
  if (formKey.currentState!.validate()) {
    FocusScope.of(context).unfocus();
    try {
      isLoading(true);
      var request = {
        'merchant_id': Storage.getValue(Constants.merchantID),
        'api_key': await Constants.apiKey(),
        'customer_id': Storage.getValue(Constants.customerID),
        "zip": zipCodeController.text.toString(),
        "address_name": addressName.text.toString(),
        "street_address": streetAddressController.text.toString(),
        "city": city.text.toString(),
        "state": state.text.toString(),
        "country": country.text.toString(),
        "is_default_address": "false",
      };
      var response = await DioClient().request(
          context: context,
          api: '/customer/shipping/create',
          method: Method.POST,
          params: request);
      ShippingAddressResponse getAddressResponse =
          ShippingAddressResponse.fromJson(response);
      if (getAddressResponse.status == Strings.success) {
        Utils.navigationReplace(
            context,
            SuccessfulMgs(
              successTitle: Strings.addressAddedSuccessfully,
              successMessage: DateFormat.jm().format(
                  DateTime.parse(DateTime.now().toString()).toLocal()),
            ));
        deliveryAddressController.fetchAddress(context);
      } else {
        return Utils.showSnackbar(context, Strings.error,
            response['message'].toString().toTitleCase(), AppColors.red);
      }
    } catch (e) {
      return Utils.showSnackbar(
          context, Strings.error, e.toString(), AppColors.red);
    } finally {
      isLoading(false);
    }
    update();
  }
}