Skip to content

Commit 051bd37

Browse files
committed
add when to move
1 parent c9b61bf commit 051bd37

File tree

2 files changed

+34
-6
lines changed

2 files changed

+34
-6
lines changed

src/MediaCollection.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,6 @@ public function __construct(
1818
public bool $public = false,
1919
public ?string $disk = null,
2020
public null|string|Closure $fallback = null,
21-
) {}
21+
) {
22+
}
2223
}

src/Models/Media.php

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -604,17 +604,25 @@ public function storeConversionFromHttpFile(
604604
return $generatedConversion;
605605
}
606606

607+
/**
608+
* @param null|Closure(GeneratedConversion $item):bool $when
609+
*/
607610
public function moveGeneratedConversion(
608611
string $conversion,
609612
?string $disk = null,
610613
?string $path = null,
614+
?Closure $when = null
611615
): ?GeneratedConversion {
612616
$generatedConversion = $this->getGeneratedConversion($conversion);
613617

614618
if (! $generatedConversion) {
615619
return null;
616620
}
617621

622+
if ($when && ! $when($generatedConversion)) {
623+
return $generatedConversion;
624+
}
625+
618626
if (! $generatedConversion->disk || ! $generatedConversion->path) {
619627
return $generatedConversion;
620628
}
@@ -685,10 +693,19 @@ public function moveFile(
685693

686694
/**
687695
* Recursively move generated and nested conversions files to a new disk
696+
*
697+
* @param null|Closure(GeneratedConversion $item):bool $when
688698
*/
689-
protected function moveGeneratedConversionToDisk(string $disk, string $conversion): ?GeneratedConversion
690-
{
691-
$generatedConversion = $this->moveGeneratedConversion($conversion, $disk);
699+
protected function moveGeneratedConversionToDisk(
700+
string $disk,
701+
string $conversion,
702+
?Closure $when = null
703+
): ?GeneratedConversion {
704+
$generatedConversion = $this->moveGeneratedConversion(
705+
$conversion,
706+
$disk,
707+
$when
708+
);
692709

693710
if (! $generatedConversion) {
694711
return null;
@@ -697,22 +714,32 @@ protected function moveGeneratedConversionToDisk(string $disk, string $conversio
697714
foreach ($generatedConversion->generated_conversions->keys() as $childConversionName) {
698715
$this->moveGeneratedConversionToDisk(
699716
disk: $disk,
700-
conversion: "{$conversion}.{$childConversionName}"
717+
conversion: "{$conversion}.{$childConversionName}",
718+
when: $when,
701719
);
702720
}
703721

704722
return $generatedConversion;
705723
}
706724

725+
/**
726+
* @param null|Closure(GeneratedConversion|static $item):bool $when
727+
*/
707728
public function moveToDisk(
708729
string $disk,
730+
?Closure $when = null
709731
): static {
710732

733+
if ($when && ! $when($this)) {
734+
return $this;
735+
}
736+
711737
if ($this->generated_conversions) {
712738
foreach ($this->generated_conversions->keys() as $conversionName) {
713739
$this->moveGeneratedConversionToDisk(
714740
disk: $disk,
715-
conversion: $conversionName
741+
conversion: $conversionName,
742+
when: $when
716743
);
717744
}
718745
}

0 commit comments

Comments
 (0)