Ejemplo n.º 1
0
    async def list_user_types(self):
        """
        Fetches all User Types in your org
        Args:
        Returns:
            list: Collection of UserType instances.
        """
        http_method = "get".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/meta/types/user
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, UserType)

        if error:
            return (None, response, error)

        try:
            result = []
            for item in response.get_body():
                result.append(UserType(self.form_response_body(item)))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
Ejemplo n.º 2
0
    async def get_user_type(self, typeId):
        """
        Fetches a User Type by ID. The special identifier `defa
        ult` may be used to fetch the default User Type.
        Args:
            type_id {str}
        Returns:
            UserType
        """
        http_method = "get".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/meta/types/user/{typeId}
            """)

        body = {}
        headers = {}

        request, error = await self._request_executor.create_request(
            http_method, api_url, body, headers)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, UserType)

        if error:
            return (None, response, error)

        try:
            result = UserType(self.form_response_body(response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
Ejemplo n.º 3
0
    async def replace_user_type(self,
                                typeId,
                                user_type,
                                keep_empty_params=False):
        """
        Replace an existing User Type
        Args:
            type_id {str}
            {user_type}
        Returns:
            UserType
        """
        http_method = "put".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/meta/types/user/{typeId}
            """)

        if isinstance(user_type, dict):
            body = user_type
        else:
            body = user_type.as_dict()
        headers = {
            "Accept": "application/json",
            "Content-Type": "application/json"
        }
        form = {}

        request, error = await self._request_executor.create_request(
            http_method,
            api_url,
            body,
            headers,
            form,
            keep_empty_params=keep_empty_params)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, UserType)

        if error:
            return (None, response, error)

        try:
            result = UserType(self.form_response_body(response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)
Ejemplo n.º 4
0
    async def create_user_type(self, user_type, keep_empty_params=False):
        """
        Creates a new User Type. A default User Type is automat
        ically created along with your org, and you may add ano
        ther 9 User Types for a maximum of 10.
        Args:
            {user_type}
        Returns:
            UserType
        """
        http_method = "post".upper()
        api_url = format_url(f"""
            {self._base_url}
            /api/v1/meta/types/user
            """)

        if isinstance(user_type, dict):
            body = user_type
        else:
            body = user_type.as_dict()
        headers = {
            "Accept": "application/json",
            "Content-Type": "application/json"
        }
        form = {}

        request, error = await self._request_executor.create_request(
            http_method,
            api_url,
            body,
            headers,
            form,
            keep_empty_params=keep_empty_params)

        if error:
            return (None, None, error)

        response, error = await self._request_executor\
            .execute(request, UserType)

        if error:
            return (None, response, error)

        try:
            result = UserType(self.form_response_body(response.get_body()))
        except Exception as error:
            return (None, response, error)
        return (result, response, None)