#[Package('core')]
class ActionButtonPersister{ public function __construct(private readonly EntityRepository
$actionButtonRepository) { } public function updateActions(Manifest
$manifest, string
$appId, string
$defaultLocale, Context
$context): void
{ $existingActionButtons =
$this->
getExistingActionButtons($appId,
$context);
$actionButtons =
$manifest->
getAdmin() ?
$manifest->
getAdmin()->
getActionButtons() :
[];
$upserts =
[];
foreach ($actionButtons as $actionButton) { $payload =
$actionButton->
toArray($defaultLocale);
$payload['appId'
] =
$appId;
/** @var ActionButtonEntity|null $existing */
$existing =
$existingActionButtons->
filterByProperty('action',
$actionButton->
getAction())->
first();
if ($existing) { $payload['id'
] =
$existing->
getId();