def get_company_details(self, company_name, company_guid):
        """Post the data of company details/company ratings.

        Args:
            company_name (str): Name of the company for which details need to be fetched.
            company_guid (str): GUID of the company to pass in the URL.
        """
        try:
            data_to_post = None
            post_data_ratings = []
            checkpoint_key = "{}".format(company_guid)
            checkpoint_data_company = self.checkpoint_obj.get_last_data(
                self.company_detail_state, table_name=COMPANY_DETAIL_TABLE_NAME
            )
            checkpoint_data_company_ratings = self.checkpoint_obj.get_last_data(
                self.company_rating_state, table_name=COMPANIES_RATING_DETAILS_TABLE_NAME
            )
            last_data_company_details = self.checkpoint_obj.get_endpoint_last_data(
                checkpoint_data_company, "companies_details", checkpoint_key
            )
            last_data_company_ratings = self.checkpoint_obj.get_endpoint_last_data(
                checkpoint_data_company_ratings,
                "companies_ratings_details",
                checkpoint_key,
            )
            company_detail_url = self.base_url + self.company_endpoint_path.format(
                company_guid
            )
            response = self.get_bitsight_data(company_detail_url)
            if not response:
                applogger.info(
                    "{} {} No new data found.".format(
                        self.logs_starts_with, COMPANY_DETAILS_FUNC_NAME
                    )
                )
                return
            rating_details = response.get("rating_details", [])
            if rating_details:
                rating = json.dumps(rating_details, sort_keys=True)
                result = hashlib.sha512(rating.encode("utf-8"))
                result_hash = result.hexdigest()
                if result_hash != last_data_company_ratings:
                    ratingdetailskeys = rating_details.keys()
                    # filter out rating field from company details.
                    for rating_detail in ratingdetailskeys:
                        rating = rating_details.get(rating_detail)
                        rating["Company_name"] = company_name
                        post_data_ratings.append(rating)
                    self.send_data_to_sentinel(
                        post_data_ratings,
                        COMPANIES_RATING_DETAILS_TABLE_NAME,
                        company_name,
                        "company rating details",
                    )
                else:
                    applogger.info(
                        "BitSight: The company rating details of {} company is already exist.".format(
                            company_name
                        )
                    )
                data_to_post = result_hash
                self.checkpoint_obj.save_checkpoint(
                    self.company_rating_state,
                    checkpoint_data_company_ratings,
                    "companies_ratings_details",
                    "{}_{}".format(COMPANIES_RATING_DETAILS_TABLE_NAME, "Checkpoint"),
                    checkpoint_key,
                    data_to_post,
                )
                # delete rating field after post.
                del response["rating_details"]
            rating = json.dumps(response, sort_keys=True)
            result = hashlib.sha512(rating.encode("utf-8"))
            result_hash = result.hexdigest()
            if result_hash != last_data_company_details:
                self.send_data_to_sentinel(
                    response, COMPANY_DETAIL_TABLE_NAME, company_name, "company details"
                )
            else:
                applogger.info(
                    "{} {} The company details of {} company is already exist.".format(
                        self.logs_starts_with, COMPANY_DETAILS_FUNC_NAME, company_name
                    )
                )
            data_to_post = result_hash
            self.checkpoint_obj.save_checkpoint(
                self.company_detail_state,
                checkpoint_data_company,
                "companies_details",
                "{}_{}".format(COMPANY_DETAIL_TABLE_NAME, "Checkpoint"),
                checkpoint_key,
                data_to_post,
            )
        except BitSightException:
            raise BitSightException()
        except KeyError as err:
            applogger.error(
                "{} {} Key Error while getting Company data: {}".format(
                    self.logs_starts_with, COMPANY_DETAILS_FUNC_NAME, err
                )
            )
            raise BitSightException()
        except Exception as err:
            applogger.exception(
                "{} {} Error: {}".format(
                    self.logs_starts_with, COMPANY_DETAILS_FUNC_NAME, err
                )
            )
            raise BitSightException()
Post the data of company details/company ratings.

        Args:
            company_name (str): Name of the company for which details need to be fetched.
            company_guid (str): GUID of the company to pass in the URL.
        
Solutions/BitSight/Data Connectors/BitSightDataConnector/CompaniesDetails/bitsight_companies.py