diff --git a/db/crud.py b/db/crud.py index 214d65d..200b2eb 100644 --- a/db/crud.py +++ b/db/crud.py @@ -1,18 +1,14 @@ -from pydantic import Secret -import sqlalchemy.orm import Session +from sqlalchemy.orm import Session from . import models -def create_url(db:Session, short_code:str , long_url:str): - db_url = models.URL( - short_code=short_code, - long_url=long_url - ) + +def create_url(db: Session, short_code: str, long_url: str): + db_url = models.URL(short_code=short_code, long_url=long_url) db.add(db_url) db.commit() db.refresh(db_url) return db_url -def get_url(db:Session , short_code:str): - return db.query(models.URL).filter( - models.URL.short_code == short_code - ).first() + +def get_url(db: Session, short_code: str): + return db.query(models.URL).filter(models.URL.short_code == short_code).first() diff --git a/main.py b/main.py index 4ac2412..cadc3fb 100644 --- a/main.py +++ b/main.py @@ -9,7 +9,8 @@ import random from db.database import SessionLocal, engine from db import models, crud, schemas -models.Base.metadata.create_call(bind=engine) +models.Base.metadata.create_all(bind=engine) + app = FastAPI() @@ -41,4 +42,4 @@ def redirect_url(short_code: str, db: Session = Depends(get_db)): if not db_url: raise HTTPException(status_code=404, detail="URL not found") - return {"long_url": db_url.long_url} + return RedirectResponse(url=db_url.long_url) diff --git a/redis_client.py b/redis_client.py new file mode 100644 index 0000000..e69de29 diff --git a/requirements.txt b/requirements.txt index 89bae1f..f3770a4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ fastapi uvicorn -sqlalchemy +sqlalchemy +redis diff --git a/server.log b/server.log new file mode 100644 index 0000000..34f3fe9 --- /dev/null +++ b/server.log @@ -0,0 +1,4 @@ +INFO: Started server process [60747] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) diff --git a/urls.db b/urls.db new file mode 100644 index 0000000..62ee16f Binary files /dev/null and b/urls.db differ