fix error

This commit is contained in:
2025-12-04 10:56:36 -03:00
parent 2f76bd611c
commit c3917addfa
17 changed files with 127 additions and 52 deletions

View File

@@ -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')

View File

@@ -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] = [

View 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

View File

@@ -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 {}

View File

@@ -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",
]

View File

@@ -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"