@@ -346,24 +346,24 @@ You can nest `app.resolver()` decorator multiple times when resolving fields wit
346346=== "nested_mappings.py"
347347
348348 ```python hl_lines="4 8 10-12 18"
349- from aws_lambda_powertools import Logger, Tracer
349+ from aws_lambda_powertools import Logger, Tracer
350350
351- from aws_lambda_powertools.logging import correlation_paths
352- from aws_lambda_powertools.event_handler import AppSyncResolver
351+ from aws_lambda_powertools.logging import correlation_paths
352+ from aws_lambda_powertools.event_handler import AppSyncResolver
353353
354- tracer = Tracer(service="sample_resolver")
355- logger = Logger(service="sample_resolver")
356- app = AppSyncResolver()
354+ tracer = Tracer(service="sample_resolver")
355+ logger = Logger(service="sample_resolver")
356+ app = AppSyncResolver()
357357
358- @app.resolver(field_name="listLocations")
359- @app.resolver(field_name="locations")
360- def get_locations(name: str, description: str = ""):
361- return name + description
358+ @app.resolver(field_name="listLocations")
359+ @app.resolver(field_name="locations")
360+ def get_locations(name: str, description: str = ""):
361+ return name + description
362362
363- @logger.inject_lambda_context(correlation_id_path=correlation_paths.APPSYNC_RESOLVER)
364- @tracer.capture_lambda_handler
365- def lambda_handler(event, context):
366- return app.resolve(event, context)
363+ @logger.inject_lambda_context(correlation_id_path=correlation_paths.APPSYNC_RESOLVER)
364+ @tracer.capture_lambda_handler
365+ def lambda_handler(event, context):
366+ return app.resolve(event, context)
367367 ```
368368
369369=== "schema.graphql"
@@ -396,7 +396,8 @@ You can nest `app.resolver()` decorator multiple times when resolving fields wit
396396
397397For Lambda Python3.8+ runtime, this utility supports async functions when you use in conjunction with ` asyncio.run ` .
398398
399- ``` python hl_lines="4 8 10-12 20" title="Resolving GraphQL resolvers async"
399+ ``` python hl_lines="5 9 11-13 21" title="Resolving GraphQL resolvers async"
400+ import asyncio
400401from aws_lambda_powertools import Logger, Tracer
401402
402403from aws_lambda_powertools.logging import correlation_paths
@@ -603,33 +604,34 @@ You can subclass `AppSyncResolverEvent` to bring your own set of methods to hand
603604
604605=== "custom_model.py"
605606
606- ```python hl_lines="11-14 19 26 "
607- from aws_lambda_powertools import Logger, Tracer
607+ ```python hl_lines="12-15 20 27 "
608+ from aws_lambda_powertools import Logger, Tracer
608609
609- from aws_lambda_powertools.logging import correlation_paths
610- from aws_lambda_powertools.event_handler import AppSyncResolver
610+ from aws_lambda_powertools.logging import correlation_paths
611+ from aws_lambda_powertools.event_handler import AppSyncResolver
612+ from aws_lambda_powertools.utilities.data_classes.appsync_resolver_event import AppSyncResolverEvent
611613
612- tracer = Tracer(service="sample_resolver")
613- logger = Logger(service="sample_resolver")
614- app = AppSyncResolver()
614+ tracer = Tracer(service="sample_resolver")
615+ logger = Logger(service="sample_resolver")
616+ app = AppSyncResolver()
615617
616618
617- class MyCustomModel(AppSyncResolverEvent):
618- @property
619- def country_viewer(self) -> str:
620- return self.request_headers.get("cloudfront-viewer-country")
619+ class MyCustomModel(AppSyncResolverEvent):
620+ @property
621+ def country_viewer(self) -> str:
622+ return self.request_headers.get("cloudfront-viewer-country")
621623
622- @app.resolver(field_name="listLocations")
623- @app.resolver(field_name="locations")
624- def get_locations(name: str, description: str = ""):
625- if app.current_event.country_viewer == "US":
626- ...
627- return name + description
624+ @app.resolver(field_name="listLocations")
625+ @app.resolver(field_name="locations")
626+ def get_locations(name: str, description: str = ""):
627+ if app.current_event.country_viewer == "US":
628+ ...
629+ return name + description
628630
629- @logger.inject_lambda_context(correlation_id_path=correlation_paths.APPSYNC_RESOLVER)
630- @tracer.capture_lambda_handler
631- def lambda_handler(event, context):
632- return app.resolve(event, context, data_model=MyCustomModel)
631+ @logger.inject_lambda_context(correlation_id_path=correlation_paths.APPSYNC_RESOLVER)
632+ @tracer.capture_lambda_handler
633+ def lambda_handler(event, context):
634+ return app.resolve(event, context, data_model=MyCustomModel)
633635 ```
634636
635637=== "schema.graphql"
@@ -820,7 +822,6 @@ Here's an example of how you can test your synchronous resolvers:
820822
821823And an example for testing asynchronous resolvers. Note that this requires the ` pytest-asyncio ` package:
822824
823-
824825=== "test_async_resolver.py"
825826
826827 ```python
0 commit comments