editAddress method

void editAddress(
  1. BuildContext context,
  2. String addressId
)

Implementation

void editAddress(
    BuildContext context, String addressId) async {
  FocusScope.of(context).requestFocus(FocusNode());
  if (formKey.currentState!.validate()) {
    FocusScope.of(context).unfocus();
      isLoading(true);
      var request = {
        'token': Storage.getValue(Constants.token),
        'api_key': Constants.apiKey,
        'sub_client_api_key': Storage.getValue(Constants.subClientApiKey),
        'city': city.text.toString(),
        'zip': zipCodeController.text.toString(),
        'state': state.text.toString(),
        'country': country.text.toString(),
        'address': streetAddressController.text.toString(),
      };

      var response = await DioClient().request(context: context,
          api: '/address/update/$addressId',
          method: Method.POST,
          params: request);

      UpdateAddressResponse updateAddressResponse =
          UpdateAddressResponse.fromJson(response);
      if (updateAddressResponse.status == Strings.success) {
        if (isDefaultAddressSet.isTrue) {
        setDefaultAddress(context,addressId);
      } else {
        isLoading(false);
        Utils.navigationReplace(
            context,
            Successful(
                successTitle: Strings.addressChangedSuccessfully,
                successMessage: DateFormat.jm().format(
                    DateTime.parse(DateTime.now().toString()).toLocal()),));
        Utils.showSnackbar(context, Strings.success,
            updateAddressResponse.message!, AppColors.green);
        addressController.fetchUserAddress(context);
      }
    } else {
      isLoading(false);
        return Utils.showSnackbar(
            context, Strings.error, response['message'].toString().toTitleCase(), AppColors.red);
      }
  }
}