/
Pepegator
/
task-api
Обзор
Документация
Войти
/
Pepegator
/
task-api
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
feature/lab2
pythonProject2/fields.py
40 строк
959 B
Pol136
add pagination and fields
30 дек 2025, 12:09
30 дек 2025, 12:09
ee91189
Код
Авторство
О чём код?
from typing import List, Dict, Any, Optional TASK_ALLOWED_FIELDS = { "id", "owner_id", "title", "description", "status", "priority", "created_at", "updated_at", "completed_at" } USER_ALLOWED_FIELDS = { "id", "username", "email", "is_active", "created_at", "updated_at" } def parse_fields(fields_str: Optional[str], allowed_fields: set) -> set: if not fields_str: return allowed_fields requested = set(f.strip() for f in fields_str.split(",") if f.strip()) return requested & allowed_fields def filter_object_fields(obj: Any, fields: set) -> Dict[str, Any]: result = {} for field in fields: if hasattr(obj, field): value = getattr(obj, field) result[field] = value return result def filter_list_fields(objects: List[Any], fields: set) -> List[Dict[str, Any]]: return [filter_object_fields(obj, fields) for obj in objects]