setUpShop method

void setUpShop(
  1. BuildContext context
)

Implementation

void setUpShop(BuildContext context) async {
  FocusScope.of(context).requestFocus(FocusNode());
  if (formKey.currentState!.validate()) {
    FocusScope.of(context).unfocus();
    try {
      isLoading.value = true;
      var request = {
        'api_key': await Constants.apiKey(),
        'sub_client_api_key': Storage.getValue(Constants.subClientApiKey),
        'deposit_user_id': depositsUserId.value,
        'name': storeName.text.toString(),
        'description': storeDescription.text.toString(),
        'country': country.text.toString(),
        'support_email': depositsUserEmail.value,
        'category': storeCategory,
        'zip': zipCodeController.text.toString(),
        'street_address': streetAddressController.text.toString(),
        'city': city.text.toString(),
        'state': state.text.toString()
      };
      var response = await DioClient().request(
          context: context,
          api: '/merchant/setup-merchant',
          method: Method.POST,
          params: request);

      SetupMerchantResponse setupMerchantResponse =
          SetupMerchantResponse.fromJson(response);
      // Map<String, dynamic> respJson = Map<String, dynamic>.from(response);
      // final String status = respJson['status'] as String;
      // final String message = respJson['message'] as String;
      // final MerchantData setupData = MerchantData.fromJson(respJson["data"]);

      if (setupMerchantResponse.status == Strings.success) {
        Storage.removeValue(Constants.merchantID);
        Storage.saveValue(
            Constants.merchantID, setupMerchantResponse.data!.id.toString());
        Storage.saveValue(Strings.isStoreSetUpComplete, true);

        shopContext.setupShopEvent.add(setupMerchantResponse);

        Utils.navigationReplace(context,
            Dashboard(merchantID: setupMerchantResponse.data!.id.toString()));
      } else {
        return Utils.showSnackbar(
            context,
            Strings.error,
            setupMerchantResponse.message.toString().toTitleCase(),
            AppColors.red);
      }
    } on DioError catch (e) {
      return Utils.showSnackbar(context, Strings.error,
          Utils.handleErrorComing(e).toTitleCase(), Colors.red);
    } catch (e) {
      return Utils.showSnackbar(
          context, Strings.error, e.toString().toTitleCase(), AppColors.red);
    } finally {
      isLoading(false);
    }
    update();
  }
}