This commit is contained in:
2025-06-03 20:13:07 -03:00
parent 957f9c4a72
commit c3e6ed4a50
13 changed files with 312 additions and 75 deletions

View File

@@ -1,3 +1,4 @@
from datetime import timedelta
from types import SimpleNamespace
from typing import TypedDict
@@ -9,6 +10,7 @@ from layercake.dynamodb import (
ComposeKey,
DynamoDBPersistenceLayer,
KeyPair,
SortKey,
)
User = TypedDict('User', {'id': str, 'name': str, 'cpf': str})
@@ -23,7 +25,12 @@ def update_user(
now_ = now()
user = SimpleNamespace(**data)
# Get the user's CPF, if it exists.
old_cpf = persistence_layer.get_item(KeyPair(user.id, '0')).get('cpf', None)
old_cpf = persistence_layer.collection.get_item(
KeyPair(
pk=user.id,
sk=SortKey('0', path_spec='cpf'),
)
)
with persistence_layer.transact_writer() as transact:
transact.update(
@@ -128,9 +135,7 @@ def del_email(
) -> bool:
"""Delete any email except the primary email."""
with persistence_layer.transact_writer() as transact:
transact.delete(
key=KeyPair('email', email),
)
transact.delete(key=KeyPair('email', email))
transact.delete(
key=KeyPair(id, ComposeKey(email, prefix='emails')),
cond_expr='email_primary <> :primary',