File size: 971 Bytes
c2ebaa7
e1fb2f2
c2ebaa7
 
 
 
 
 
 
 
 
 
 
e1fb2f2
c2ebaa7
 
e1fb2f2
 
 
 
 
c2ebaa7
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from fastapi import APIRouter, HTTPException
from fastapi.responses import JSONResponse

from src.utils import logger

from src.services import DatabaseService

class DatabaseController:
    def __init__(self):
        self.database_service = DatabaseService
        self.router = APIRouter(prefix="/update_database", tags=["database"])
        self.router.add_api_route("/", self.update_database, methods=["POST"])

    async def update_database(self, urls: list[str] = ["https://sifars.com/"], knowledge_base: bool = False):
        try:
            async with self.database_service() as database_service:
                response = await database_service._update_database(urls=urls, knowledge_base=knowledge_base)
            return JSONResponse({
                "status": "success",
                "data": {"message": response}
            })
        except Exception as e:
            logger.error(e)
            raise HTTPException(status_code=500, detail=str(e))