Skip to content

Commit bc250f3

Browse files
authored
Allow for AppSyncResolverEvent subclass to be used for self.current_event
1 parent c0c32bc commit bc250f3

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

aws_lambda_powertools/event_handler/appsync.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import logging
2-
from typing import Any, Callable
2+
from typing import Any, Callable, Type
33

44
from aws_lambda_powertools.utilities.data_classes import AppSyncResolverEvent
55
from aws_lambda_powertools.utilities.typing import LambdaContext
@@ -37,7 +37,7 @@ def common_field() -> str:
3737
# Would match all fieldNames matching 'commonField'
3838
return str(uuid.uuid4())
3939
"""
40-
40+
4141
current_event: AppSyncResolverEvent
4242
lambda_context: LambdaContext
4343

@@ -62,7 +62,7 @@ def register_resolver(func):
6262

6363
return register_resolver
6464

65-
def resolve(self, event: dict, context: LambdaContext) -> Any:
65+
def resolve(self, event: dict, context: LambdaContext, current_event_data_class: Type[AppSyncResolverEvent] = AppSyncResolverEvent) -> Any:
6666
"""Resolve field_name
6767
6868
Parameters
@@ -71,6 +71,8 @@ def resolve(self, event: dict, context: LambdaContext) -> Any:
7171
Lambda event
7272
context : LambdaContext
7373
Lambda context
74+
current_event_data_class:
75+
Decode instance of event to class or subclass of AppSyncResolverEvent
7476
7577
Returns
7678
-------
@@ -82,7 +84,7 @@ def resolve(self, event: dict, context: LambdaContext) -> Any:
8284
ValueError
8385
If we could not find a field resolver
8486
"""
85-
self.current_event = AppSyncResolverEvent(event)
87+
self.current_event = current_event_data_class(event)
8688
self.lambda_context = context
8789
resolver = self._get_resolver(self.current_event.type_name, self.current_event.field_name)
8890
return resolver(**self.current_event.arguments)

0 commit comments

Comments
 (0)