fix error
This commit is contained in:
@@ -6,9 +6,11 @@ import boto3
|
||||
if TYPE_CHECKING:
|
||||
from mypy_boto3_cognito_idp import CognitoIdentityProviderClient
|
||||
from mypy_boto3_dynamodb.client import DynamoDBClient
|
||||
from mypy_boto3_sesv2.client import SESV2Client
|
||||
else:
|
||||
DynamoDBClient = object
|
||||
CognitoIdentityProviderClient = object
|
||||
SESV2Client = object
|
||||
|
||||
|
||||
def get_dynamodb_client() -> DynamoDBClient:
|
||||
@@ -20,3 +22,4 @@ def get_dynamodb_client() -> DynamoDBClient:
|
||||
|
||||
dynamodb_client: DynamoDBClient = get_dynamodb_client()
|
||||
idp_client: CognitoIdentityProviderClient = boto3.client('cognito-idp')
|
||||
sesv2_client: SESV2Client = boto3.client('sesv2')
|
||||
|
||||
@@ -2,6 +2,8 @@ import os
|
||||
|
||||
ISSUER: str = os.getenv('ISSUER') # type: ignore
|
||||
|
||||
EMAIL_SENDER = ('EDUSEG®', 'noreply@eduseg.com.br')
|
||||
|
||||
OAUTH2_TABLE: str = os.getenv('OAUTH2_TABLE') # type: ignore
|
||||
OAUTH2_REFRESH_TOKEN_EXPIRES_IN = 86_400 * 7 # 7 days
|
||||
OAUTH2_SCOPES_SUPPORTED: list[str] = [
|
||||
|
||||
20
id.saladeaula.digital/app/events/send_forgot_email.py
Normal file
20
id.saladeaula.digital/app/events/send_forgot_email.py
Normal file
@@ -0,0 +1,20 @@
|
||||
from aws_lambda_powertools import Logger
|
||||
from aws_lambda_powertools.utilities.data_classes import (
|
||||
EventBridgeEvent,
|
||||
event_source,
|
||||
)
|
||||
from aws_lambda_powertools.utilities.typing import LambdaContext
|
||||
|
||||
from boto3clients import sesv2_client
|
||||
from config import EMAIL_SENDER
|
||||
|
||||
logger = Logger(__name__)
|
||||
|
||||
|
||||
@event_source(data_class=EventBridgeEvent)
|
||||
def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
|
||||
new_image = event.detail['new_image']
|
||||
# Key pattern `PASSWORD_RESET#{code}`
|
||||
*_, code = new_image['sk'].split('#')
|
||||
|
||||
return True
|
||||
@@ -2,11 +2,12 @@ from typing import Annotated
|
||||
|
||||
from aws_lambda_powertools.event_handler.api_gateway import Router
|
||||
from aws_lambda_powertools.event_handler.openapi.params import Body
|
||||
from layercake.extra_types import CpfStr
|
||||
from pydantic import EmailStr
|
||||
|
||||
router = Router()
|
||||
|
||||
|
||||
@router.post('/forgot')
|
||||
def forgot(email: Annotated[EmailStr, Body(embed=True)]):
|
||||
def forgot(email: Annotated[EmailStr | CpfStr, Body(embed=True)]):
|
||||
return {}
|
||||
|
||||
@@ -12,7 +12,7 @@ dev = [
|
||||
"pytest>=8.4.1",
|
||||
"ruff>=0.12.1",
|
||||
"pytest-cov>=6.2.1",
|
||||
"boto3-stubs[cognito-idp,essential]>=1.40.44",
|
||||
"boto3-stubs[cognito-idp,essential,sesv2]>=1.40.44",
|
||||
]
|
||||
|
||||
|
||||
|
||||
16
id.saladeaula.digital/uv.lock
generated
16
id.saladeaula.digital/uv.lock
generated
@@ -145,6 +145,9 @@ essential = [
|
||||
{ name = "mypy-boto3-s3" },
|
||||
{ name = "mypy-boto3-sqs" },
|
||||
]
|
||||
sesv2 = [
|
||||
{ name = "mypy-boto3-sesv2" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "botocore"
|
||||
@@ -426,7 +429,7 @@ dependencies = [
|
||||
|
||||
[package.dev-dependencies]
|
||||
dev = [
|
||||
{ name = "boto3-stubs", extra = ["cognito-idp", "essential"] },
|
||||
{ name = "boto3-stubs", extra = ["cognito-idp", "essential", "sesv2"] },
|
||||
{ name = "jsonlines" },
|
||||
{ name = "pytest" },
|
||||
{ name = "pytest-cov" },
|
||||
@@ -438,7 +441,7 @@ requires-dist = [{ name = "layercake", directory = "../layercake" }]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [
|
||||
{ name = "boto3-stubs", extras = ["cognito-idp", "essential"], specifier = ">=1.40.44" },
|
||||
{ name = "boto3-stubs", extras = ["cognito-idp", "essential", "sesv2"], specifier = ">=1.40.44" },
|
||||
{ name = "jsonlines", specifier = ">=4.0.0" },
|
||||
{ name = "pytest", specifier = ">=8.4.1" },
|
||||
{ name = "pytest-cov", specifier = ">=6.2.1" },
|
||||
@@ -648,6 +651,15 @@ wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/85/a5/dba3384423834009bdd41c7021de5c663468a0e7bc4071cb301721e52a99/mypy_boto3_s3-1.40.26-py3-none-any.whl", hash = "sha256:6d055d16ef89a0133ade92f6b4f09603e4acc31a0f5e8f846edf4eb48f17b5a7", size = 82762, upload-time = "2025-09-08T20:12:19.338Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mypy-boto3-sesv2"
|
||||
version = "1.40.58"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/eb/29/95a662122aa340cbf9a272639a20f3b77ef380e171c08d31da3cce0c46a3/mypy_boto3_sesv2-1.40.58.tar.gz", hash = "sha256:7b99f8df3821ec4a3408eea9de6de10bcea59397804fd8014bc6a5b8b1583913", size = 46559, upload-time = "2025-10-23T20:15:22.426Z" }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/91/f2/79307d855d5c3f58806b27c6f41062f2e6985e31451d4ed690bbb357cec4/mypy_boto3_sesv2-1.40.58-py3-none-any.whl", hash = "sha256:c6cf7058e038553f3aa8f8111a6de067878462cbe22c9c8baf78cdd891a0e75f", size = 51779, upload-time = "2025-10-23T20:15:20.216Z" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "mypy-boto3-sqs"
|
||||
version = "1.40.35"
|
||||
|
||||
Reference in New Issue
Block a user