setUpShop method
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();
}
}