uploaded file logic
This commit is contained in:
parent
e9fdb7ae06
commit
10bddc2e6b
6
chain_service/database/models/uploaded_file.py
Normal file
6
chain_service/database/models/uploaded_file.py
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
from .base import BaseMongoModel
|
||||
|
||||
|
||||
class UploadedFile(BaseMongoModel):
|
||||
file_id: int
|
||||
file_url: str
|
||||
16
chain_service/dependencies/uploaded_file_repository.py
Normal file
16
chain_service/dependencies/uploaded_file_repository.py
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
from .database import DatabaseDependency
|
||||
from chain_service.repositories.uploaded_file import UploadedFileRepository
|
||||
|
||||
from fastapi import Depends
|
||||
from typing import Annotated
|
||||
|
||||
|
||||
def get_uploaded_file_repository(
|
||||
database: DatabaseDependency,
|
||||
) -> UploadedFileRepository:
|
||||
return UploadedFileRepository(database=database)
|
||||
|
||||
|
||||
UploadedFileRepositoryDependency = Annotated[
|
||||
UploadedFileRepository, Depends(get_uploaded_file_repository)
|
||||
]
|
||||
19
chain_service/repositories/uploaded_file.py
Normal file
19
chain_service/repositories/uploaded_file.py
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
from chain_service.database.database import Database
|
||||
from chain_service.database.models.uploaded_file import UploadedFile
|
||||
|
||||
|
||||
class UploadedFileRepository:
|
||||
|
||||
def __init__(self, database: Database):
|
||||
self.collection = database.get_collection("uploaded_files")
|
||||
|
||||
async def upsert(self, uploaded_file: UploadedFile) -> UploadedFile:
|
||||
query = {"_id": uploaded_file.id}
|
||||
payload = uploaded_file.model_dump(by_alias=True)
|
||||
await self.collection.replace_one(query, payload, upsert=True)
|
||||
return uploaded_file
|
||||
|
||||
async def get_by_file_url(self, file_url: str) -> UploadedFile | None:
|
||||
query = {"fileUrl": file_url}
|
||||
uploaded_file = await self.collection.find_one(query)
|
||||
return UploadedFile.model_validate(uploaded_file) if uploaded_file else None
|
||||
Loading…
Reference in New Issue
Block a user