/
outthevoid
/
python_microblogging_service_project
Обзор
Документация
Войти
/
outthevoid
/
python_microblogging_service_project
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
app/utils/helpers.py
57 строк
2 KB
VladimirChukavin
Revert "Вернул проект в исходное состояние."
07 апр 2026, 14:01
07 апр 2026, 14:01
7531b60
Код
Авторство
О чём код?
from pathlib import Path from typing import Dict, List from app.config import get_settings from app.core.exceptions import NotFoundError from app.schemas.base_schema import ErrorSchema async def delete_media_file(images: List[str]) -> None: """ Удаляет файлы медиа по переданным путям. Для каждого элемента списка вычисляет путь к файлу относительно директории медиа и удаляет его, если файл существует. Если хотя бы один файл не найден, выбрасывается исключение. :param images: Список путей или имён медиафайлов. :type images: list[str] :raises app.core.exceptions.NotFoundError: Если файл по указанному пути не существует. :returns: ``None`` :rtype: None """ media_dir = Path(get_settings().media_dir) for image in images: file_name = Path(image).name image_path = media_dir / file_name if image_path.is_file(): image_path.unlink() else: raise NotFoundError("Файл не найден") def build_error_response(error_type: str, error_message: str) -> Dict[str, str | bool]: """ Формирует унифицированный словарь с описанием ошибки. Функция создаёт экземпляр схемы :class:`app.schemas.base_schema.ErrorSchema` с переданным типом и сообщением об ошибке, после чего преобразует его в словарь для использования в качестве JSON-ответа. :param error_type: Машиночитаемый тип ошибки. :type error_type: str :param error_message: Текстовое описание ошибки. :type error_message: str :returns: Словарь с полями ``result``, ``error_type`` и ``error_message``. :rtype: dict[str, str | bool] """ return ErrorSchema( error_type=error_type, error_message=error_message, ).model_dump()