Source code for q2_cores.JXchange.queries.update_demographic_info_query

import logging

from lxml import etree
from lxml.builder import E

from q2_sdk.models.cores.queries.base_query import BaseQuery
from q2_sdk.models.demographic import DemographicInfo
from q2_cores.JXchange.queries import mock_responses


[docs] class UpdateDemographicInfoQuery(BaseQuery): def __init__( self, logger: logging.Logger, cust_id: str, demographic_info: DemographicInfo ): self.cust_id = cust_id self.demographic_info = demographic_info super().__init__(logger)
[docs] def build(self) -> str: address = self.demographic_info.addresses[0] email = self.demographic_info.emails[0] phone = self.demographic_info.phones[0] error_overrides = [ "400100", "400101", "410043", "410010", "410029", "410043", "410081", "410007", "410023", ] error_override_nodes = [] for errorcode in error_overrides: error_override_nodes.append(E.ErrOvrRd(E.ErrCode(errorcode), E.Ver_1)) root = E.passthru( E.CustMod( E.MsgRqHdr(), E.CustId(self.cust_id), E.ErrOvrRdInfoArray(*error_override_nodes), E.CustDetail( E.Addr( E.StreetAddr1(address.address_1), E.StreetAddr2(address.address_2), E.City(address.city), E.StateCode(address.state), E.PostalCode(address.zipcode), E.Ver_1, ), E.BirthDt(self.demographic_info.dob), E.EmailArray( E.EmailInfo( E.EmailAddr(email), E.EmailType("Primary E-Mail"), E.Ver_1 ) ), E.PhoneArray( E.PhoneInfo( E.PhoneNum(phone.area_code + phone.phone_number), E.PhoneType("Home Phone"), E.Ver_1, ) ), E.Ver_1, ), xmlns="http://jackhenry.com/jxchange/TPG/2008", ), servicename="Customer", ) xml_as_bytes = etree.tostring(root) return xml_as_bytes.decode()
[docs] def mock_response(self): return mock_responses.mock_update_demographic_info_response(self.cust_id)