Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simonpainter/d0867ed32c051cb1877d4919bee9f8ad to your computer and use it in GitHub Desktop.
Save simonpainter/d0867ed32c051cb1877d4919bee9f8ad to your computer and use it in GitHub Desktop.
Inserting unique value into DynamoDB list.
$marshaler = new Marshaler();
$UpdateExpression = "
SET #subscribers = list_append(if_not_exists(#subscribers, :empty_list), :subscriber)
";
$ConditionExpression = "
NOT contains (#subscribers,:subscriberStr)
";
$ExpressionAttributeNames = [
"#subscribers" => "subscribers"
];
$ExpressionAttributeValues = $marshaler->marshalJson('
{
":subscriber" : ['.$subscriber.'],
":subscriberStr" : '.$subscriber.',
":empty_list" :[]
}
');
$tableName = 'publisherRelationships';
$key = $marshaler->marshalJson('
{
"publisher": '.$publisher.'
}
');
$params = [
'TableName' => $tableName,
'Key' => $key,
'UpdateExpression' => $UpdateExpression,
'ConditionExpression' => $ConditionExpression,
'ExpressionAttributeNames' => $ExpressionAttributeNames,
'ExpressionAttributeValues' => $ExpressionAttributeValues
];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment