Source code for pyrestsdk.requestbuilder._base_request_builder

"""Houses Base Request Builder"""

from __future__ import annotations
from typing import TypeVar
from logging import getLogger

from pyrestsdk import AbstractServiceClient
from pyrestsdk.requestbuilder._abstract_request_builder import AbstractRequestBuilder


S = TypeVar("S", bound=AbstractServiceClient)
B = TypeVar("B", bound="BaseRequestBuilder")

Logger = getLogger(__name__)


[docs]class BaseRequestBuilder(AbstractRequestBuilder): """Base Request Builder Type""" @property def Client(self: B) -> S: """Gets/Sets the Client""" Logger.info("%s.Client: get function called", type(self).__name__) return self._client @Client.setter def Client(self: B, client: S) -> None: Logger.info("%s.Client: set function called", type(self).__name__) self._client = client Logger.debug( "%s.request_url: request URL set to %s", type(self).__name__, client ) @property def request_url(self: B) -> str: """Gets/Sets the request URL Returns: str: The request URL """ Logger.info("%s.request_url: get function called", type(self).__name__) return self._request_url @request_url.setter def request_url(self: B, value: str) -> None: Logger.info("%s.request_url: set function called", type(self).__name__) self._request_url = value Logger.debug( "%s.request_url: request URL set to %s", type(self).__name__, value )
[docs] def append_segment_to_request_url(self, url_segment: str) -> str: """Gets a URL that is the request builder's request URL with the segment appended. Args: url_segment (str): The segment to append to the request URL. Returns: str: A URL that is the request builder's request URL with the segment appended. """ Logger.info("%s.append_segment_to_request_url: function called with %s", type(self).__name__, url_segment) if not url_segment.startswith("/"): url_segment = f"/{url_segment}" return f"{self.request_url}{url_segment}"