import logging
from q2_cores.Symitar.queries import mock_responses
from ...Symitar.queries.base_query import SymitarBaseQuery
[docs]
class AccountDemographicQuery(SymitarBaseQuery):
"""Returns all available shares that can be opened"""
def __init__(
self,
logger: logging.Logger,
customer_id,
unit_number,
device_type,
card_prefix,
repgenname=None,
procedure=None,
rg_params=None,
guid=None,
use_symxchange=False,
):
repgenname = "Q2.POWER.PACK" if not repgenname else repgenname
procedure = "ALLACCOUNTPROFILES" if not procedure else procedure
clean_rg_params = {
"RGUSERCHR1": str(rg_params["ssn"])
if rg_params and rg_params.get("ssn")
else "",
"RGUSERCHR2": rg_params.get("name_type_list")
if rg_params and rg_params.get("name_type_list")
else "",
}
super().__init__(
logger,
customer_id,
unit_number,
device_type,
card_prefix,
repgenname,
procedure,
rg_params=clean_rg_params,
guid=guid,
use_symxchange=use_symxchange,
)
[docs]
def mock_response(self):
return mock_responses.mock_account_demographic_response()
[docs]
class AccountDemographicUpdateQuery(SymitarBaseQuery):
"""Returns rates and other details from core based on the selected funding amount"""
def __init__(
self,
logger: logging.Logger,
customer_id,
unit_number,
device_type,
card_prefix,
repgenname,
procedure,
data_file_name,
rg_params,
guid=None,
use_symxchange=False,
):
clean_rg_params = {
"LOCATOR": rg_params.get("locator"),
"ADDRESSTYPE": rg_params.get("address_type"),
"STREET": rg_params.get("address_1"),
"EXTRAADDRESS": rg_params.get("address_2"),
"SHAREID": rg_params.get("share_id"),
"CITY": rg_params.get("city"),
"STATE": rg_params.get("state"),
"COUNTRY": rg_params.get("country"),
"COUNTRYNAME": rg_params.get("country_name"),
"ZIPCODE": rg_params.get("zipcode"),
"PHONETYPE": rg_params.get("phone_type"),
"HOMEPHONE": rg_params.get("home_phone"),
"MOBILEPHONE": rg_params.get("mobile_phone"),
"WORKPHONE": rg_params.get("work_phone"),
"WORKPHONEEXTENSION": rg_params.get("work_phone_extension"),
"EMAIL": rg_params.get("email"),
"ALTEMAIL": rg_params.get("alternative_email"),
"EXPIRATION": rg_params.get("expiration_date"),
"MAILINGTYPE": rg_params.get("mailing_type"),
"PREFERREDCONTACTMETHOD": rg_params.get("preferred_contact_method"),
"SETWARNINGCODE": rg_params.get("set_account_warning_code"),
"GOODSTATEMENTMAILCODE": rg_params.get("good_statement_code"),
"BADSTATEMENTMAILCODE": rg_params.get("bad_statement_code"),
"RESETWARININGCODE": rg_params.get("remove_account_warning_code"),
}
super().__init__(
logger,
customer_id,
unit_number,
device_type,
card_prefix,
repgenname,
procedure,
data_file_name=data_file_name,
data_attrs=clean_rg_params,
guid=guid,
use_symxchange=use_symxchange,
)
[docs]
def mock_response(self):
return mock_responses.mock_account_demographic_update_response()