示例#1
0
    def delete_session(self, account_id, session_id):
        """Does a DELETE request to /accounts/{accountId}/sessions/{sessionId}.

        Delete session by ID.

        Args:
            account_id (string): Account ID
            session_id (string): Session ID

        Returns:
            ApiResponse: An object with the response value as well as other
                useful information such as status codes and headers. No
                Content

        Raises:
            APIException: When an error occurs while fetching the data from
                the remote API. This exception includes the HTTP Response
                code, an error message, and the HTTP body that was received in
                the request.

        """

        # Prepare query URL
        _url_path = '/accounts/{accountId}/sessions/{sessionId}'
        _url_path = APIHelper.append_url_with_template_parameters(
            _url_path, {
                'accountId': {
                    'value': account_id,
                    'encode': False
                },
                'sessionId': {
                    'value': session_id,
                    'encode': False
                }
            })
        _query_builder = self.config.get_base_uri(Server.WEBRTCDEFAULT)
        _query_builder += _url_path
        _query_url = APIHelper.clean_url(_query_builder)

        # Prepare and execute request
        _request = self.config.http_client.delete(_query_url)
        WebRtcBasicAuth.apply(self.config, _request)
        _response = self.execute_request(_request)

        # Endpoint and global error handling using HTTP status codes.
        if _response.status_code == 401:
            raise APIException('Unauthorized', _response)
        elif _response.status_code == 403:
            raise APIException('Access Denied', _response)
        elif _response.status_code == 404:
            raise APIException('Not Found', _response)
        elif (_response.status_code < 200) or (_response.status_code > 208):
            raise ErrorException('Unexpected Error', _response)
        self.validate_response(_response)

        # Return appropriate type
        return ApiResponse(_response)
示例#2
0
    def get_participant(self, account_id, participant_id):
        """Does a GET request to /accounts/{accountId}/participants/{participantId}.

        Get participant by ID.

        Args:
            account_id (string): Account ID
            participant_id (string): Participant ID

        Returns:
            ApiResponse: An object with the response value as well as other
                useful information such as status codes and headers. Success

        Raises:
            APIException: When an error occurs while fetching the data from
                the remote API. This exception includes the HTTP Response
                code, an error message, and the HTTP body that was received in
                the request.

        """

        # Prepare query URL
        _url_path = '/accounts/{accountId}/participants/{participantId}'
        _url_path = APIHelper.append_url_with_template_parameters(
            _url_path, {
                'accountId': {
                    'value': account_id,
                    'encode': False
                },
                'participantId': {
                    'value': participant_id,
                    'encode': False
                }
            })
        _query_builder = self.config.get_base_uri(Server.WEBRTCDEFAULT)
        _query_builder += _url_path
        _query_url = APIHelper.clean_url(_query_builder)

        # Prepare headers
        _headers = {'accept': 'application/json'}

        # Prepare and execute request
        _request = self.config.http_client.get(_query_url, headers=_headers)
        WebRtcBasicAuth.apply(self.config, _request)
        _response = self.execute_request(_request)

        # Endpoint and global error handling using HTTP status codes.
        if _response.status_code == 401:
            raise APIException('Unauthorized', _response)
        elif _response.status_code == 403:
            raise APIException('Access Denied', _response)
        elif _response.status_code == 404:
            raise APIException('Not Found', _response)
        elif (_response.status_code < 200) or (_response.status_code > 208):
            raise ErrorException('Unexpected Error', _response)
        self.validate_response(_response)

        decoded = APIHelper.json_deserialize(_response.text,
                                             Participant.from_dictionary)
        _result = ApiResponse(_response, body=decoded)
        return _result
示例#3
0
    def update_participant_subscriptions(self,
                                         account_id,
                                         session_id,
                                         participant_id,
                                         body=None):
        """Does a PUT request to /accounts/{accountId}/sessions/{sessionId}/participants/{participantId}/subscriptions.

        Update a participant's subscriptions.
        This is a full update that will replace the participant's
        subscriptions. First call `getParticipantSubscriptions` if you need
        the current subscriptions. Call this function with no `Subscriptions`
        object to remove all subscriptions.

        Args:
            account_id (string): Account ID
            session_id (string): Session ID
            participant_id (string): Participant ID
            body (Subscriptions, optional): Initial state

        Returns:
            ApiResponse: An object with the response value as well as other
                useful information such as status codes and headers. No
                Content

        Raises:
            APIException: When an error occurs while fetching the data from
                the remote API. This exception includes the HTTP Response
                code, an error message, and the HTTP body that was received in
                the request.

        """

        # Prepare query URL
        _url_path = '/accounts/{accountId}/sessions/{sessionId}/participants/{participantId}/subscriptions'
        _url_path = APIHelper.append_url_with_template_parameters(
            _url_path, {
                'accountId': {
                    'value': account_id,
                    'encode': False
                },
                'sessionId': {
                    'value': session_id,
                    'encode': False
                },
                'participantId': {
                    'value': participant_id,
                    'encode': False
                }
            })
        _query_builder = self.config.get_base_uri(Server.WEBRTCDEFAULT)
        _query_builder += _url_path
        _query_url = APIHelper.clean_url(_query_builder)

        # Prepare headers
        _headers = {'content-type': 'application/json; charset=utf-8'}

        # Prepare and execute request
        _request = self.config.http_client.put(
            _query_url,
            headers=_headers,
            parameters=APIHelper.json_serialize(body))
        WebRtcBasicAuth.apply(self.config, _request)
        _response = self.execute_request(_request)

        # Endpoint and global error handling using HTTP status codes.
        if _response.status_code == 400:
            raise APIException('Bad Request', _response)
        elif _response.status_code == 401:
            raise APIException('Unauthorized', _response)
        elif _response.status_code == 403:
            raise APIException('Access Denied', _response)
        elif _response.status_code == 404:
            raise APIException('Not Found', _response)
        elif (_response.status_code < 200) or (_response.status_code > 208):
            raise ErrorException('Unexpected Error', _response)
        self.validate_response(_response)

        # Return appropriate type
        return ApiResponse(_response)
示例#4
0
    def create_participant(self, account_id, body=None):
        """Does a POST request to /accounts/{accountId}/participants.

        Create a new participant under this account.
        Participants are idempotent, so relevant parameters must be set in
        this function if desired.

        Args:
            account_id (string): Account ID
            body (Participant, optional): Participant parameters

        Returns:
            ApiResponse: An object with the response value as well as other
                useful information such as status codes and headers. Success

        Raises:
            APIException: When an error occurs while fetching the data from
                the remote API. This exception includes the HTTP Response
                code, an error message, and the HTTP body that was received in
                the request.

        """

        # Prepare query URL
        _url_path = '/accounts/{accountId}/participants'
        _url_path = APIHelper.append_url_with_template_parameters(
            _url_path, {'accountId': {
                'value': account_id,
                'encode': False
            }})
        _query_builder = self.config.get_base_uri(Server.WEBRTCDEFAULT)
        _query_builder += _url_path
        _query_url = APIHelper.clean_url(_query_builder)

        # Prepare headers
        _headers = {
            'accept': 'application/json',
            'content-type': 'application/json; charset=utf-8'
        }

        # Prepare and execute request
        _request = self.config.http_client.post(
            _query_url,
            headers=_headers,
            parameters=APIHelper.json_serialize(body))
        WebRtcBasicAuth.apply(self.config, _request)
        _response = self.execute_request(_request)

        # Endpoint and global error handling using HTTP status codes.
        if _response.status_code == 400:
            raise APIException('Bad Request', _response)
        elif _response.status_code == 401:
            raise APIException('Unauthorized', _response)
        elif _response.status_code == 403:
            raise APIException('Access Denied', _response)
        elif (_response.status_code < 200) or (_response.status_code > 208):
            raise ErrorException('Unexpected Error', _response)
        self.validate_response(_response)

        decoded = APIHelper.json_deserialize(
            _response.text, AccountsParticipantsResponse.from_dictionary)
        _result = ApiResponse(_response, body=decoded)
        return _result