Source code for q2_cores.OSI.queries.update_phone_query

import logging

from lxml import etree

from q2_sdk.models.demographic import Phone
from q2_sdk.models.cores.queries.base_query import BaseQuery
from q2_cores import data_helpers


[docs] class UpdatePhoneQuery(BaseQuery): """Updates Phone info for an OSI Entity""" def __init__( self, logger: logging.Logger, access_number: str, pin: str, use_code: int, phone: Phone, country: str = "USA", phone_type: str = "PER", ): assert isinstance(phone, Phone) self.access_number = access_number self.pin = pin self.use_code = use_code self.phone = phone self.country = country self.phone_type = phone_type super().__init__(logger)
[docs] def build(self): root = etree.Element("PROCREQ", PROC="1240") etree.SubElement(root, "ACCESS_NBR").text = str(self.access_number) etree.SubElement(root, "PIN").text = str(self.pin) etree.SubElement(root, "SOURCE").text = "WWW" etree.SubElement(root, "UC").text = str(self.use_code) etree.SubElement(root, "PHONEUSECD").text = self.phone_type etree.SubElement(root, "AREACD").text = self.phone.area_code etree.SubElement(root, "EXCHANGE").text = self.phone.phone_number[:3] etree.SubElement(root, "NUMBER").text = self.phone.phone_number[3:] etree.SubElement(root, "PHONEEXTEN").text = self.phone.extension etree.SubElement(root, "COUNTRY").text = self.country xml_bytes = b"95\t" + etree.tostring(root) return xml_bytes.decode()
[docs] def mock_response(self): response = """ <PROCREQ PROC="1240"> <RESPONSE>OK</RESPONSE> </PROCREQ> """ response = [data_helpers.normalize_xml_str(response), "ITC\t1\t0"] return "\n".join(response)