import boto3
import json

class SecretsManager:
    """ Klasse om secrets op te halen vanuit AWS Secrets Manager """

    def __init__(self, region_name="eu-central-1"):
        """ Initialiseer AWS Secrets Manager client """
        self.client = boto3.client(service_name="secretsmanager", region_name=region_name)

    def get_secret(self, secret_name):
        """ Haalt een secret op uit AWS Secrets Manager """
        try:
            response = self.client.get_secret_value(SecretId=secret_name)
            if "SecretString" in response:
                return json.loads(response["SecretString"])
            else:
                return json.loads(response["SecretBinary"].decode("utf-8"))
        except self.client.exceptions.ResourceNotFoundException:
            print(f"Secret '{secret_name}' niet gevonden.")
        except self.client.exceptions.DecryptionFailureException:
            print(f"Decryption failure bij secret '{secret_name}'.")
        except self.client.exceptions.InternalServiceErrorException:
            print("Interne serverfout bij AWS Secrets Manager.")
        except self.client.exceptions.InvalidParameterException:
            print("Ongeldige parameter voor AWS Secrets Manager.")
        except self.client.exceptions.InvalidRequestException:
            print(f"De aanvraag voor secret '{secret_name}' is ongeldig.")
        except Exception as e:
            print(f"Onverwachte fout bij ophalen van secret '{secret_name}': {e}")

        return None  # Retourneer None als ophalen mislukt

# Gebruik van de klasse:
secrets_manager = SecretsManager()

