This commit is contained in:
Andreas Knuth 2025-12-17 14:18:39 -06:00
parent d2dbceb53e
commit 2e3df96ca3
1 changed files with 23 additions and 11 deletions

View File

@ -34,22 +34,34 @@ fi
# Wenn Flags gesetzt: Update statt Delete
if [ "$OOO" = true ] || [ "$FORWARD" = true ]; then
# Update-Ausdruck bauen
UPDATE_EXPR="REMOVE"
ATTR_NAMES=""
ATTR_VALUES=""
SET_EXPR=""
REMOVE_EXPR=""
ATTR_VALUES_JSON='{}'
if [ "$OOO" = true ]; then
UPDATE_EXPR="$UPDATE_EXPR ooo_message, ooo_content_type"
UPDATE_EXPR="$UPDATE_EXPR SET ooo_active = :false"
ATTR_VALUES="$ATTR_VALUES, :false={'BOOL': false}"
SET_EXPR="$SET_EXPR ooo_active = :false"
REMOVE_EXPR="$REMOVE_EXPR ooo_message, ooo_content_type"
ATTR_VALUES_JSON=$(echo "$ATTR_VALUES_JSON" | jq '. + {":false": {"BOOL": false}}')
fi
if [ "$FORWARD" = true ]; then
if [ -n "$UPDATE_EXPR" ] && [ "$UPDATE_EXPR" != "REMOVE" ]; then
UPDATE_EXPR="$UPDATE_EXPR,"
if [ -n "$SET_EXPR" ]; then
SET_EXPR="$SET_EXPR,"
fi
UPDATE_EXPR="$UPDATE_EXPR SET forwards = :empty_list"
ATTR_VALUES="$ATTR_VALUES, :empty_list={'L': []}"
SET_EXPR="$SET_EXPR forwards = :empty_list"
ATTR_VALUES_JSON=$(echo "$ATTR_VALUES_JSON" | jq '. + {":empty_list": {"L": []}}')
fi
# Update-Expression zusammenbauen
UPDATE_EXPR=""
if [ -n "$SET_EXPR" ]; then
UPDATE_EXPR="SET $SET_EXPR"
fi
if [ -n "$REMOVE_EXPR" ]; then
if [ -n "$UPDATE_EXPR" ]; then
UPDATE_EXPR="$UPDATE_EXPR "
fi
UPDATE_EXPR="$UPDATE_EXPR REMOVE ${REMOVE_EXPR#,}" # Entferne führendes Komma in REMOVE
fi
# Update-Item ausführen (nur wenn Regel existiert)
@ -57,7 +69,7 @@ if [ "$OOO" = true ] || [ "$FORWARD" = true ]; then
--table-name email-rules \
--key '{"email_address": {"S": "'"$EMAIL"'"}}' \
--update-expression "$UPDATE_EXPR" \
--expression-attribute-values '{'"${ATTR_VALUES:1}"'}' \
--expression-attribute-values "$ATTR_VALUES_JSON" \
--region us-east-2 \
--condition-expression "attribute_exists(email_address)" # Vermeide Fehler, wenn nicht existent