def get_risk_vector_data(
        self, endpoint, endpoint_path, company_name, company_guid, state, table_name
    ):
        """Fetch risk vector data for a specific endpoint and post it to Sentinel.

        Args:
            endpoint (str): Name of the endpoint.
            endpoint_path (str): Path of the endpoint.
            company_name (str): Name of the company.
            company_guid (str): GUID of the company.
            state (str): State to store the checkpoint data.
            table_name (str): Name of the table.

        Raises:
            BitSightException: Raises exception if any error occurs.
        """
        try:
            data_to_post = []
            risk_vector_data = []
            checkpoint_key = "{}".format(company_guid)
            checkpoint_data = self.checkpoint_obj.get_last_data(state, table_name=table_name)
            last_data = self.checkpoint_obj.get_endpoint_last_data(
                checkpoint_data, endpoint, checkpoint_key
            )
            url = self.base_url + endpoint_path
            res_list = self.get_bitsight_data(url)
            if not res_list:
                return
            if res_list.get("risk_vectors"):
                risk_data = res_list.get("risk_vectors")
                risk_vectors = risk_data.keys()
                for risk_vector in risk_vectors:
                    risk_vector_detail = risk_data.get(risk_vector)
                    risk_vector_detail["risk_vector"] = risk_vector
                    risk_vector_detail["Company_name"] = company_name
                    data = json.dumps(risk_vector_detail, sort_keys=True)
                    result = hashlib.sha512(data.encode("utf-8"))
                    result_hash = result.hexdigest()
                    if last_data:
                        if result_hash not in last_data:
                            risk_vector_data.append(risk_vector_detail)
                        data_to_post.append(result_hash)
                    else:
                        risk_vector_data.append(risk_vector_detail)
                        data_to_post.append(result_hash)
                self.send_data_to_sentinel(
                    risk_vector_data, table_name, company_name, endpoint
                )
            self.checkpoint_obj.save_checkpoint(
                state, checkpoint_data, endpoint, "{}_{}".format(table_name, "Checkpoint"), checkpoint_key, data_to_post
            )
        except BitSightException:
            raise BitSightException()
        except Exception as err:
            applogger.exception(
                "{} {} Error getting risk vector: {}".format(
                    self.logs_starts_with, ALERT_GRAPH_STATISTICS_FUNC_NAME, err
                )
            )
            raise BitSightException()
Fetch risk vector data for a specific endpoint and post it to Sentinel.

        Args:
            endpoint (str): Name of the endpoint.
            endpoint_path (str): Path of the endpoint.
            company_name (str): Name of the company.
            company_guid (str): GUID of the company.
            state (str): State to store the checkpoint data.
            table_name (str): Name of the table.

        Raises:
            BitSightException: Raises exception if any error occurs.
        
Solutions/BitSight/Data Connectors/BitSightDataConnector/AlertsGraphStatisticsDetails/bitsight_statistics.py