12
12
use Elegantly \Media \Events \MediaFileStoredEvent ;
13
13
use Elegantly \Media \FileDownloaders \FileDownloader ;
14
14
use Elegantly \Media \Helpers \File ;
15
+ use Elegantly \Media \Jobs \MediaConversionJob ;
15
16
use Elegantly \Media \TemporaryDirectory ;
16
17
use Elegantly \Media \Traits \HasUuid ;
17
18
use Exception ;
@@ -240,30 +241,41 @@ public function getChildrenConversionsDefinitions(string $name): array
240
241
return $ this ->getConversionDefinition ($ name )?->conversions ?? [];
241
242
}
242
243
243
- public function dispatchConversion (string $ conversion ): ?PendingDispatch
244
- {
244
+ public function dispatchConversion (
245
+ string $ conversion ,
246
+ bool $ force = true ,
247
+ ): ?PendingDispatch {
248
+ if (
249
+ $ force === false &&
250
+ $ this ->hasConversion ($ conversion )
251
+ ) {
252
+ return null ;
253
+ }
254
+
245
255
if ($ definition = $ this ->getConversionDefinition ($ conversion )) {
246
- $ parent = $ this ->getParentConversion ($ conversion );
247
256
248
- if ($ definition ->shouldExecute ($ this , $ parent )) {
249
- return $ definition ->dispatch ($ this , $ parent );
250
- }
257
+ return dispatch (new MediaConversionJob (
258
+ media: $ this ,
259
+ conversion: $ conversion
260
+ ));
261
+
251
262
}
252
263
253
264
return null ;
254
265
}
255
266
256
- public function getOrExecuteConversion (string $ name ): ?MediaConversion
257
- {
258
- if ($ conversion = $ this ->getConversion ($ name )) {
259
- return $ conversion ;
260
- }
267
+ public function executeConversion (
268
+ string $ conversion ,
269
+ bool $ force = true ,
270
+ ): ?MediaConversion {
261
271
262
- return $ this ->executeConversion ($ name );
263
- }
272
+ if (
273
+ $ force === false &&
274
+ $ this ->hasConversion ($ conversion )
275
+ ) {
276
+ return null ;
277
+ }
264
278
265
- public function executeConversion (string $ conversion ): ?MediaConversion
266
- {
267
279
if ($ definition = $ this ->getConversionDefinition ($ conversion )) {
268
280
269
281
if (str_contains ($ conversion , '. ' )) {
@@ -279,6 +291,15 @@ public function executeConversion(string $conversion): ?MediaConversion
279
291
return null ;
280
292
}
281
293
294
+ public function getOrExecuteConversion (string $ name ): ?MediaConversion
295
+ {
296
+ if ($ conversion = $ this ->getConversion ($ name )) {
297
+ return $ conversion ;
298
+ }
299
+
300
+ return $ this ->executeConversion ($ name );
301
+ }
302
+
282
303
public function getConversion (string $ name ): ?MediaConversion
283
304
{
284
305
return $ this ->conversions ->firstWhere ('conversion_name ' , $ name );
0 commit comments