1
1
import logging
2
- from typing import Any , Callable
2
+ from typing import Any , Callable , Type
3
3
4
4
from aws_lambda_powertools .utilities .data_classes import AppSyncResolverEvent
5
5
from aws_lambda_powertools .utilities .typing import LambdaContext
@@ -37,7 +37,7 @@ def common_field() -> str:
37
37
# Would match all fieldNames matching 'commonField'
38
38
return str(uuid.uuid4())
39
39
"""
40
-
40
+
41
41
current_event : AppSyncResolverEvent
42
42
lambda_context : LambdaContext
43
43
@@ -62,7 +62,7 @@ def register_resolver(func):
62
62
63
63
return register_resolver
64
64
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 :
66
66
"""Resolve field_name
67
67
68
68
Parameters
@@ -71,6 +71,8 @@ def resolve(self, event: dict, context: LambdaContext) -> Any:
71
71
Lambda event
72
72
context : LambdaContext
73
73
Lambda context
74
+ current_event_data_class:
75
+ Decode instance of event to class or subclass of AppSyncResolverEvent
74
76
75
77
Returns
76
78
-------
@@ -82,7 +84,7 @@ def resolve(self, event: dict, context: LambdaContext) -> Any:
82
84
ValueError
83
85
If we could not find a field resolver
84
86
"""
85
- self .current_event = AppSyncResolverEvent (event )
87
+ self .current_event = current_event_data_class (event )
86
88
self .lambda_context = context
87
89
resolver = self ._get_resolver (self .current_event .type_name , self .current_event .field_name )
88
90
return resolver (** self .current_event .arguments )
0 commit comments