From 1be0184c809fb73fd48ffe5b065fd29c246320a6 Mon Sep 17 00:00:00 2001 From: Elad Cohen Date: Thu, 13 Jun 2024 12:39:46 +0300 Subject: [PATCH] wip --- pyproject.toml | 2 +- wing.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index aa43874..fd928b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "wingsdk" -version = "0.0.2" +version = "0.0.3" description = "Wing SDK in Python" authors = [{name = "Elad Cohen", email = "eladc@wing.cloud"}] readme = "README.md" diff --git a/wing.py b/wing.py index de4435f..dd4b935 100644 --- a/wing.py +++ b/wing.py @@ -191,6 +191,7 @@ def lifted(id: str): if id in jsonValue: return create_client(jsonValue[id]) + print(f"Client with id={id} not found") raise Exception(f"Client not found (id={id}).") def create_client(idValue: dict): @@ -215,12 +216,18 @@ def create_client(idValue: dict): return SESEmailService_aws(idValue["props"]) elif target == "sim": return SESEmailService_sim(create_client(idValue["children"]["store"])) - + +def _set_context(event): + context = json.loads(event["context"]) + for key, value in context.items(): + os.environ[key] = value + def from_function_event(event): target = os.getenv(f"WING_TARGET") if target == "tf-aws": return str(event) elif target == "sim": + _set_context(event) payload = event["payload"] return payload if isinstance(payload, str) else json.dumps(payload) else: @@ -231,6 +238,7 @@ def from_topic_event(event): if target == "tf-aws": return [event["Records"][0]["Sns"]["Message"]] elif target == "sim": + _set_context(event) return [str(event["payload"])] else: raise Exception(f"Unsupported target: {target}") @@ -240,6 +248,7 @@ def from_queue_event(event): if target == "tf-aws": return [event["Records"][0]["body"]] elif target == "sim": + _set_context(event) return [str(event["payload"])] else: raise Exception(f"Unsupported target: {target}") @@ -258,6 +267,7 @@ def from_bucket_event(event): bucket_event.type = os.getenv("WING_BUCKET_EVENT") return [bucket_event] elif target == "sim": + _set_context(event) data = event["payload"] bucket_event = BucketEvent() bucket_event.key = data["key"] @@ -287,6 +297,7 @@ def from_api_event(event): } return req elif target == "sim": + _set_context(event) data = event["payload"] req: ApiRequest = { 'method': data["method"], @@ -333,6 +344,7 @@ def api_to_lambda(event: dict[str, Any]): if target == "tf-aws": return req elif target == "sim": + _set_context(event) data = event["payload"] body = data["body"] req = {