Source code for NGPIris.hci.helpers
from json import (
dumps
)
from requests import (
Response,
get,
post
)
[docs]
def get_index_response(address : str, api_port : str, token : str, use_ssl : bool) -> Response:
"""
Retrieve the index response given the address, API port and token.
:param address: The address where request is to be made
:type address: str
:param api_port: The API port at the given address
:type api_port: str
:param token: The HCI token
:type token: str
:param use_ssl: Boolean choice of using SSL
:type use_ssl: bool
:return: A response containing information about the index
:rtype: requests.Response
"""
url : str = "https://" + address + ":" + api_port + "/api/search/indexes/"
headers : dict[str, str] = {
"Accept": "application/json",
"Authorization": "Bearer " + token
}
response : Response = get(
url,
headers = headers,
verify = use_ssl
)
response.raise_for_status()
return response
[docs]
def get_query_response(
query_dict : dict[str, str],
address : str,
api_port : str,
token : str,
use_ssl : bool,
path_extension : str = ""
) -> Response:
"""
Retrieve the query response given the address, API port and token.
:param query_dict: The query dictionary
:type query_dict: dict[str, str]
:param address: The address where request is to be made
:type address: str
:param api_port: The API port at the given address
:type api_port: str
:param token: The HCI token
:type token: str
:param use_ssl: Boolean choice of using SSL
:type use_ssl: bool
:param path_extension: possibly extend the request URL. Used for example when making SQL requests. Defaults to ""
:type path_extension: str, optional
:return: A response containing information about the query
:rtype: requests.Response
"""
if not "indexName" in query_dict.keys():
raise RuntimeError("Field indexName is missing in the query dictionary")
url : str = "https://" + address + ":" + api_port + "/api/search/query/" + path_extension
query : dict[str, str] = query_dict
headers : dict[str, str] = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer " + token
}
response : Response = post(
url,
dumps(query),
headers = headers,
verify = use_ssl
)
response.raise_for_status()
return response