import logging from pyzipline.rest_adapter import RestAdapter from pyzipline.errors import PyZiplineError from pyzipline.models import * class ZiplineApi: def __init__( self, hostname: str, token: str = '', ssl: bool = True, enforced_signing: bool = True, logger: logging.Logger = None ): """Constructor for ZiplineApi :param hostname: The hostname of your Zipline instance, WITHOUT https or http. :type hostname: str :param token: String used for authentication when making requests. :type token: str, optional :param ssl: Normally set to True, but if your Zipline instance doesn't use SSL/TLS, set this to False. :type ssl: bool, optional :param enforced_signing: Normally set to True, but if having SSL/TLS cert validation issues, can turn off with False. :type enforced_signing: bool, optional :param logger: If your app has a logger, pass it in here. :type logger: logging.Logger, optional """ self._rest_adapter = RestAdapter(hostname=hostname, token=token, ssl=ssl, enforced_signing=enforced_signing, logger=logger) def get_user(self, user_id: int) -> User: """Get a user by ID :param user_id: Integer ID of the user :type user_id: int :return: The :class:`pyzipline.models.User` object matching the ID :rtype: :class:`pyzipline.models.User` """ result = self._rest_adapter.get(endpoint=f"user/{user_id}") return User(**result.data) def get_self(self) -> User: """Get the currently authenticated user :return: `pyzipline.models.User`object matching the authenticated user :rtype: `pyzipline.models.User` """ result = self._rest_adapter.get(endpoint=f"user") return User(**result.data)