refactor: extract generation core service
This commit is contained in:
+9
-1
@@ -1,5 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Callable
|
||||
from uuid import uuid4
|
||||
|
||||
from django.core.files.base import ContentFile
|
||||
@@ -7,7 +8,12 @@ from django.core.files.storage import default_storage
|
||||
from django.utils import timezone
|
||||
|
||||
|
||||
def save_generated_image(image: bytes, *, request=None) -> str:
|
||||
def save_generated_image(
|
||||
image: bytes,
|
||||
*,
|
||||
url_builder: Callable[[str], str] | None = None,
|
||||
request=None,
|
||||
) -> str:
|
||||
today = timezone.now()
|
||||
path = (
|
||||
"generated/images/"
|
||||
@@ -16,6 +22,8 @@ def save_generated_image(image: bytes, *, request=None) -> str:
|
||||
)
|
||||
saved_path = default_storage.save(path, ContentFile(image))
|
||||
url = default_storage.url(saved_path)
|
||||
if url_builder is not None and url.startswith("/"):
|
||||
return url_builder(url)
|
||||
if request is not None and url.startswith("/"):
|
||||
return request.build_absolute_uri(url)
|
||||
return url
|
||||
|
||||
Reference in New Issue
Block a user