Skip to content

Commit 67ccf53

Browse files
FEATURE: Move processing of multi selection actions to the backend
* Move processing of multi selection actions to the backend. * Generalize action response with MutationResult. * Use helper function for Asset and Tag resolvement.
1 parent 7370ae4 commit 67ccf53

32 files changed

Lines changed: 583 additions & 231 deletions

Classes/GraphQL/MediaApi.php

Lines changed: 43 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -319,52 +319,37 @@ public function updateAsset(
319319
string $label = null,
320320
string $caption = null,
321321
string $copyrightNotice = null
322-
): ?Types\Asset {
322+
): MutationResult {
323323
return $this->assetMutator->updateAsset($id, $assetSourceId, $label, $caption, $copyrightNotice);
324324
}
325325

326-
/**
327-
* @throws MediaUiException
328-
*/
329326
#[Mutation]
330-
public function tagAsset(Types\AssetId $id, Types\AssetSourceId $assetSourceId, Types\TagId $tagId): ?Types\Asset
327+
public function tagAsset(Types\AssetId $id, Types\AssetSourceId $assetSourceId, Types\TagId $tagId): MutationResult
331328
{
332329
return $this->assetMutator->tagAsset($id, $assetSourceId, $tagId);
333330
}
334331

335-
/**
336-
* @throws MediaUiException
337-
*/
338332
#[Mutation]
339-
public function untagAsset(Types\AssetId $id, Types\AssetSourceId $assetSourceId, Types\TagId $tagId): ?Types\Asset
333+
public function untagAsset(Types\AssetId $id, Types\AssetSourceId $assetSourceId, Types\TagId $tagId): MutationResult
340334
{
341335
return $this->assetMutator->untagAsset($id, $assetSourceId, $tagId);
342336
}
343337

344-
/**
345-
* @throws MediaUiException
346-
*/
347338
#[Mutation]
348339
public function deleteAsset(Types\AssetId $id, Types\AssetSourceId $assetSourceId): MutationResult
349340
{
350341
return $this->assetMutator->deleteAsset($id, $assetSourceId);
351342
}
352343

353-
/**
354-
* @throws MediaUiException
355-
*/
356344
#[Mutation]
357345
public function setAssetTags(
358346
Types\AssetId $id,
359347
Types\AssetSourceId $assetSourceId,
360348
Types\TagIds $tagIds
361-
): ?Types\Asset {
349+
): MutationResult {
362350
return $this->assetMutator->setAssetTags($id, $assetSourceId, $tagIds);
363351
}
364352

365-
/**
366-
* @throws MediaUiException
367-
*/
368353
#[Mutation]
369354
public function setAssetCollections(
370355
Types\AssetId $id,
@@ -374,6 +359,45 @@ public function setAssetCollections(
374359
return $this->assetMutator->setAssetCollections($id, $assetSourceId, $assetCollectionIds);
375360
}
376361

362+
#[Mutation]
363+
#[Description('Delete multiple assets at once')]
364+
public function deleteAssets(Types\AssetIdentities $identities): Types\MutationResults
365+
{
366+
return $this->assetMutator->deleteAssets($identities);
367+
}
368+
369+
#[Mutation]
370+
#[Description('Add a tag to multiple assets at once')]
371+
public function tagAssets(Types\AssetIdentities $identities, Types\TagId $tagId): Types\MutationResults
372+
{
373+
return $this->assetMutator->tagAssets($identities, $tagId);
374+
}
375+
376+
#[Mutation]
377+
#[Description('Remove a tag from multiple assets at once')]
378+
public function untagAssets(Types\AssetIdentities $identities, Types\TagId $tagId): Types\MutationResults
379+
{
380+
return $this->assetMutator->untagAssets($identities, $tagId);
381+
}
382+
383+
#[Mutation]
384+
#[Description('Assign multiple assets to a collection')]
385+
public function assignAssetsToCollection(
386+
Types\AssetIdentities $identities,
387+
Types\AssetCollectionId $assetCollectionId
388+
): Types\MutationResults {
389+
return $this->assetMutator->assignAssetsToCollection($identities, $assetCollectionId);
390+
}
391+
392+
#[Mutation]
393+
#[Description('Update properties of multiple assets at once')]
394+
public function updateAssets(
395+
Types\AssetIdentities $identities,
396+
string $copyrightNotice = null
397+
): Types\MutationResults {
398+
return $this->assetMutator->updateAssets($identities, $copyrightNotice);
399+
}
400+
377401
/**
378402
* @throws IllegalObjectTypeException
379403
*/

0 commit comments

Comments
 (0)