import sys

import boto3

sys.path.append(".")
from utils.fetch_environment import fetch


def update_lambda_env_from_local_and_param_store(
    environment="development", lambda_function_names: list[str] = None
):
    """Update a Lambda function's environment variables using
    local environment + Parameter Store values.
    """
    if lambda_function_names is None:
        return None

    parameters = fetch(environment, create_env_file=False)
    lambda_client = boto3.client("lambda")

    # # 5. Combine them into a dictionary
    # env_vars = {
    #     'LOCAL_VAR_1': local_var_1,
    #     'LOCAL_VAR_2': local_var_2,
    #     'MY_VAR': param_1,
    #     'ANOTHER_VAR': param_2
    # }

    # 6. Update Lambda function configuration
    for function_name in lambda_function_names:
        response = lambda_client.update_function_configuration(
            FunctionName=function_name, Environment={"Variables": parameters}
        )

    print("Update response:", response)


if __name__ == "__main__":
    update_lambda_env_from_local_and_param_store(
        environment="development",
        lambda_function_names=["rss_parser", "press_release_to_post", "ppt_training"],
    )
