Skip to content

Commit ac5ec74

Browse files
local changes
1 parent ac1cabe commit ac5ec74

3 files changed

Lines changed: 52 additions & 0 deletions

File tree

overload_web/application/commands/file_io.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
from typing import Any
23

34
from overload_web.application import ports
45
from overload_web.domain.models import files
@@ -57,3 +58,11 @@ def execute(file: bytes, file_name: str, dir: str, writer: ports.FileWriter) ->
5758
"""
5859
out_file = writer.write(file=file, file_name=file_name, dir=dir)
5960
return out_file
61+
62+
63+
class SaveIncomingFile:
64+
@staticmethod
65+
def execute(
66+
repo: ports.SqlRepositoryProtocol, file: files.VendorFile
67+
) -> dict[str, Any]:
68+
return repo.save(file)

overload_web/infrastructure/file_io.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,3 +119,39 @@ def write(self, file: bytes, file_name: str, dir: str) -> str:
119119
out_file = self.client.put_file(file=converted_file, remote=True, dir=dir)
120120
logger.info(f"Writing file to directory: {dir}/{out_file}")
121121
return getattr(out_file, "file_name", file_name)
122+
123+
124+
# class IncomingFileBatch(SQLModel, table=True):
125+
# __tablename__ = "incoming_file_batches"
126+
127+
# id: int = Field(default=None, primary_key=True, index=True)
128+
# files: list["IncomingFileModel"] = Relationship(
129+
# back_populates="batch", sa_relationship_kwargs={"lazy": "selectin"}
130+
# )
131+
132+
133+
# class IncomingFileModel(SQLModel, table=True):
134+
# __tablename__ = "incoming_files"
135+
# id: int = Field(default=None, primary_key=True, index=True)
136+
# content: bytes = Field(nullable=False)
137+
# file_name: str = Field(nullable=False)
138+
# batch_id: int = Field(
139+
# default=None, foreign_key="incoming_file_batches.id", exclude=True
140+
# )
141+
# batch: IncomingFileBatch = Relationship(back_populates="files")
142+
143+
144+
# class IncomingFileRepository:
145+
# def __init__(self, session: Session):
146+
# self.session = session
147+
148+
# def get(self, id: str | int) -> dict[str, Any] | None:
149+
# batch = self.session.get(IncomingFileBatch, id)
150+
# return batch.model_dump() if batch else None
151+
152+
# def save(self, obj: IncomingFileBatch) -> dict[str, Any]:
153+
# valid_obj = IncomingFileBatch.model_validate(obj, from_attributes=True)
154+
# self.session.add(valid_obj)
155+
# self.session.commit()
156+
# self.session.refresh(valid_obj)
157+
# return valid_obj.model_dump()

overload_web/presentation/deps.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@ def pvf_batch_db(
7575
yield batch_db.PVFBatchRepository(session=session)
7676

7777

78+
# def incoming_file_db(
79+
# session: Annotated[Any, Depends(get_session)],
80+
# ) -> Generator[file_io.IncomingFileRepository, None, None]:
81+
# """Create an PVFBatch repository."""
82+
# yield file_io.IncomingFileRepository(session=session)
83+
84+
7885
@runtime_checkable
7986
class FileProtocol(Protocol):
8087
"""A protocol representing a FastAPI `UploadFile` object."""

0 commit comments

Comments
 (0)