41 lines
1.0 KiB
Python
41 lines
1.0 KiB
Python
from layercake.dateutils import now
|
|
from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair, TransactItems
|
|
|
|
|
|
def update_policies(
|
|
id: str,
|
|
/,
|
|
payment_policy: dict = {},
|
|
billing_policy: dict = {},
|
|
*,
|
|
persistence_layer: DynamoDBPersistenceLayer,
|
|
):
|
|
now_ = now()
|
|
transact = TransactItems(persistence_layer.table_name)
|
|
|
|
if payment_policy:
|
|
transact.put(
|
|
item={
|
|
'id': id,
|
|
'sk': 'metadata#payment_policy',
|
|
'create_date': now_,
|
|
}
|
|
| payment_policy
|
|
)
|
|
else:
|
|
transact.delete(key=KeyPair(id, 'metadata#payment_policy'))
|
|
|
|
if billing_policy:
|
|
transact.put(
|
|
item={
|
|
'id': id,
|
|
'sk': 'metadata#billing_policy',
|
|
'create_date': now_,
|
|
}
|
|
| billing_policy
|
|
)
|
|
else:
|
|
transact.delete(key=KeyPair(id, 'metadata#billing_policy'))
|
|
|
|
return persistence_layer.transact_write_items(transact)
|