HR-ATS-Portal/backend/s3/serializers.py

34 lines
1010 B
Python

"""S3 response shapes. Plain dicts only — no DB, no Depends."""
def serialize_upload(result: dict) -> dict:
"""upload result → API dict (permanent url, never a presign)."""
return {
"bucket": result.get("bucket"),
"key": result.get("key"),
"url": result.get("url"),
"content_type": result.get("content_type"),
"size": result.get("size"),
"filename": result.get("filename"),
"source": result.get("source"),
"record_id": result.get("record_id"),
"owner_id": result.get("owner_id"),
}
def serialize_delete(result: dict) -> dict:
return {
"bucket": result.get("bucket"),
"key": result.get("key"),
"deleted": bool(result.get("deleted")),
}
def serialize_health(result: dict) -> dict:
return {
"status": result.get("status") or "ok",
"bucket": result.get("bucket"),
"region": result.get("region"),
"public_base_url": result.get("public_base_url"),
}