Skip to content

Commit 0f6231f

Browse files
committed
add file usage
1 parent 08368dd commit 0f6231f

File tree

1 file changed

+20
-44
lines changed

1 file changed

+20
-44
lines changed

modules/openai_dalle/openai_dalle.module

Lines changed: 20 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,7 @@ function openai_dalle_form($form, &$form_state) {
5959
$form['model'] = [
6060
'#type' => 'select',
6161
'#title' => t('Model'),
62-
'#options' => [
63-
'dall-e-2' => 'dall-e-2',
64-
'dall-e-3' => 'dall-e-3',
65-
],
62+
'#options' => $models,
6663
'#default_value' => 'dall-e-3',
6764
'#description' => t('The model to use to generate an image.'),
6865
'#ajax' => [
@@ -292,7 +289,6 @@ function openai_dalle_form_submit($form, &$form_state) {
292289
$format = $form_state['values']['response_format'];
293290
$filename_base = $form_state['values']['filename'];
294291

295-
// Determine file scheme and create a unique filename.
296292
$file_scheme = file_default_scheme();
297293
$timestamp = REQUEST_TIME;
298294
$unique_filename = $filename_base . '-' . $timestamp . '.png';
@@ -309,22 +305,11 @@ function openai_dalle_form_submit($form, &$form_state) {
309305
return;
310306
}
311307

312-
// Save the binary data to the file system.
313-
$file_uri = $file_scheme . '://' . $unique_filename;
314-
$file_save_result = file_unmanaged_save_data($data, $file_uri, FILE_EXISTS_REPLACE);
308+
$file = file_save_data($data, $file_scheme . '://' . $unique_filename, FILE_EXISTS_REPLACE);
315309

316-
if ($file_save_result) {
317-
// Create a managed file entity.
318-
$file = entity_create('file', [
319-
'uri' => $file_uri,
320-
'filename' => $unique_filename,
321-
'filemime' => 'image/png',
322-
'status' => 1,
323-
'uid' => $GLOBALS['user']->uid,
324-
'timestamp' => $timestamp,
325-
]);
326-
327-
file_save($file);
310+
if ($file) {
311+
// Add file usage to ensure it appears in the media library.
312+
file_usage_add($file, 'openai_dalle', 'module', $file->fid);
328313

329314
$form_state['storage'] = [
330315
'filename' => $file->filename,
@@ -336,31 +321,25 @@ function openai_dalle_form_submit($form, &$form_state) {
336321
form_set_error('', t('Failed to save the image to the file system.'));
337322
}
338323
} else {
339-
// Handle URL format response.
340324
$client = new GuzzleHttp\Client();
341325
$response = $client->get($result);
342326

343327
if ($response->getStatusCode() === 200) {
344-
$file_uri = $file_scheme . '://' . $unique_filename;
345-
file_unmanaged_save_data($response->getBody(), $file_uri, FILE_EXISTS_REPLACE);
346-
347-
$file = entity_create('file', [
348-
'uri' => $file_uri,
349-
'filename' => $unique_filename,
350-
'filemime' => 'image/png',
351-
'status' => 1,
352-
'uid' => $GLOBALS['user']->uid,
353-
'timestamp' => $timestamp,
354-
]);
355-
356-
file_save($file);
357-
358-
$form_state['storage'] = [
359-
'filename' => $file->filename,
360-
'filepath' => file_create_url($file->uri),
361-
'fid' => $file->fid,
362-
'format' => $format,
363-
];
328+
$file = file_save_data($response->getBody(), $file_scheme . '://' . $unique_filename, FILE_EXISTS_REPLACE);
329+
330+
if ($file) {
331+
// Add file usage to ensure it appears in the media library.
332+
file_usage_add($file, 'openai_dalle', 'module', $file->fid);
333+
334+
$form_state['storage'] = [
335+
'filename' => $file->filename,
336+
'filepath' => file_create_url($file->uri),
337+
'fid' => $file->fid,
338+
'format' => $format,
339+
];
340+
} else {
341+
form_set_error('', t('Failed to save the image to the file system.'));
342+
}
364343
} else {
365344
form_set_error('', t('Failed to download the image from the URL.'));
366345
}
@@ -370,7 +349,4 @@ function openai_dalle_form_submit($form, &$form_state) {
370349
}
371350

372351
$form_state['rebuild'] = TRUE;
373-
374-
// Ensure storage is set to avoid warnings.
375-
$form_state['storage'] = $form_state['storage'] ?? [];
376352
}

0 commit comments

Comments
 (0)