|
41 | 41 | import asyncio |
42 | 42 | from datetime import datetime, timezone |
43 | 43 | import logging |
| 44 | +import mimetypes |
44 | 45 | import os |
45 | 46 | import tempfile |
46 | 47 | import time |
@@ -621,24 +622,29 @@ async def register_gateway( |
621 | 622 | # Create resource DB models |
622 | 623 | db_resources = [ |
623 | 624 | DbResource( |
624 | | - uri=resource.uri, |
625 | | - name=resource.name, |
626 | | - description=resource.description, |
627 | | - mime_type=resource.mime_type, |
628 | | - template=resource.template, |
629 | | - # Federation metadata |
| 625 | + uri=r.uri, |
| 626 | + name=r.name, |
| 627 | + description=r.description, |
| 628 | + mime_type=(mime_type := (mimetypes.guess_type(r.uri)[0] or ("text/plain" if isinstance(r.content, str) else "application/octet-stream"))), |
| 629 | + template=r.template, |
| 630 | + text_content=r.content if (mime_type.startswith("text/") or isinstance(r.content, str)) and isinstance(r.content, str) else None, |
| 631 | + binary_content=( |
| 632 | + r.content.encode() if (mime_type.startswith("text/") or isinstance(r.content, str)) and isinstance(r.content, str) else r.content if isinstance(r.content, bytes) else None |
| 633 | + ), |
| 634 | + size=len(r.content) if r.content else 0, |
| 635 | + tags=getattr(r, "tags", []) or [], |
630 | 636 | created_by=created_by or "system", |
631 | 637 | created_from_ip=created_from_ip, |
632 | | - created_via="federation", # These are federated resources |
| 638 | + created_via="federation", |
633 | 639 | created_user_agent=created_user_agent, |
| 640 | + import_batch_id=None, |
634 | 641 | federation_source=gateway.name, |
635 | 642 | version=1, |
636 | | - # Inherit team assignment from gateway |
637 | | - team_id=team_id, |
638 | | - owner_email=owner_email, |
639 | | - visibility=visibility, |
| 643 | + team_id=getattr(r, "team_id", None) or team_id, |
| 644 | + owner_email=getattr(r, "owner_email", None) or owner_email or created_by, |
| 645 | + visibility=getattr(r, "visibility", None) or visibility, |
640 | 646 | ) |
641 | | - for resource in resources |
| 647 | + for r in resources |
642 | 648 | ] |
643 | 649 |
|
644 | 650 | # Create prompt DB models |
|
0 commit comments