import json import os import requests from sme_logger import get_logger from aws_utils import AwsUtils from const import APP_NAME, ENV, aws, chartmetric logger = get_logger(APP_NAME, os.environ.get("ENVIRONMENT", ENV).lower() != ENV) class ChartmetricTokenRefresh(object): def __init__(self): self.headers = { "Content-Type": "application/json", } self.secret = AwsUtils().get_secret( required_secret=aws.get("secrets_manager", None).get( "SECRETS_CHARTMETRIC_ACCESS_KEY", None)) def refresh_chartmetric_token(self): try: data = f"{self.secret}" response = requests.post( f"{chartmetric.get('urls', None).get('CM_REFRESH_TOKEN_URL', None)}", headers=self.headers, data=data, ) json_response = json.loads(response.text) token = json_response["token"] logger.info("Chartmetric Token Refreshed successfully") return token except Exception as e: logger.error(f"Exception raised during token refresh: {e}") if __name__ == "__main__": ChartmetricTokenRefresh().refresh_chartmetric_token()