import json
import logging
import uuid
from q2_sdk.models.cores.queries.base_query import BaseQuery
from .mock_responses import mock_get_phone_numbers_response
[docs]
class GetPhoneNumbersQuery(BaseQuery):
"""
Builds the payload for the Get Phone Numbers call in the FIS IBS OpenAPI core
"""
def __init__(self, logger: logging.Logger, customer_number):
"""
:param self.customer_number: corresponds to the user's primary cif
"""
self.customer_number = customer_number
super().__init__(logger)
[docs]
def build(self) -> str:
"""
Creates an OpenAPI query to get the customer's phone numbers
:return: OpenAPI request query as a JSON string
Example query (prior to JSON string conversion):
.. code-block:: json
{
"Endpoint": "rest/IBSCI/v2/customers/_CustNbr/phone-numbers",
"HttpVerb": "GET",
"Entity": null,
"RequestGuid": "00000000-0000-0000-0000-000000000000",
"ApplicationID": "CI",
"UrlEncryptionParams": {
"_CustNbr": "00000012975"
}
}
"""
query = {
"Endpoint": "rest/IBSCI/v2/customers/_CustNbr/phone-numbers",
"HttpVerb": "GET",
"Entity": None,
"RequestGuid": str(uuid.uuid4()),
"ApplicationID": "CI",
"UrlEncryptionParams": {"_CustNbr": self.customer_number},
}
json_string = json.dumps(query)
return json_string
[docs]
def mock_response(self):
return mock_get_phone_numbers_response()