@@ -346,24 +346,24 @@ You can nest `app.resolver()` decorator multiple times when resolving fields wit
346
346
=== "nested_mappings.py"
347
347
348
348
```python hl_lines="4 8 10-12 18"
349
- from aws_lambda_powertools import Logger, Tracer
349
+ from aws_lambda_powertools import Logger, Tracer
350
350
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
353
353
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()
357
357
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
362
362
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)
367
367
```
368
368
369
369
=== "schema.graphql"
@@ -396,7 +396,8 @@ You can nest `app.resolver()` decorator multiple times when resolving fields wit
396
396
397
397
For Lambda Python3.8+ runtime, this utility supports async functions when you use in conjunction with ` asyncio.run ` .
398
398
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
400
401
from aws_lambda_powertools import Logger, Tracer
401
402
402
403
from aws_lambda_powertools.logging import correlation_paths
@@ -603,33 +604,34 @@ You can subclass `AppSyncResolverEvent` to bring your own set of methods to hand
603
604
604
605
=== "custom_model.py"
605
606
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
608
609
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
611
613
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()
615
617
616
618
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")
621
623
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
628
630
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)
633
635
```
634
636
635
637
=== "schema.graphql"
@@ -820,7 +822,6 @@ Here's an example of how you can test your synchronous resolvers:
820
822
821
823
And an example for testing asynchronous resolvers. Note that this requires the ` pytest-asyncio ` package:
822
824
823
-
824
825
=== "test_async_resolver.py"
825
826
826
827
```python
0 commit comments