Fix Deprecation Warning and code cleanup
This commit is contained in:
+14
-19
@@ -5,29 +5,26 @@ from app.utils import generate_short_code
|
|||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
import os
|
import os
|
||||||
import sqlite3
|
import sqlite3
|
||||||
|
from contextlib import asynccontextmanager
|
||||||
|
|
||||||
load_dotenv()
|
@asynccontextmanager
|
||||||
|
async def lifespan(app: FastAPI):
|
||||||
app = FastAPI()
|
conn = sqlite3.connect('urls.db')
|
||||||
|
|
||||||
DB_PATH = "urls.db"
|
|
||||||
|
|
||||||
def get_db_connection():
|
|
||||||
conn = sqlite3.connect(DB_PATH)
|
|
||||||
return conn
|
|
||||||
|
|
||||||
# URL schema
|
|
||||||
class URLRequest(BaseModel):
|
|
||||||
url: str
|
|
||||||
|
|
||||||
@app.on_event("startup")
|
|
||||||
def startup():
|
|
||||||
conn = get_db_connection()
|
|
||||||
conn.execute('''CREATE TABLE IF NOT EXISTS urls
|
conn.execute('''CREATE TABLE IF NOT EXISTS urls
|
||||||
(id INTEGER PRIMARY KEY, short_code TEXT, original_url TEXT, clicks INTEGER)''')
|
(id INTEGER PRIMARY KEY, short_code TEXT, original_url TEXT, clicks INTEGER)''')
|
||||||
conn.commit()
|
conn.commit()
|
||||||
|
yield
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
app = FastAPI(lifespan=lifespan)
|
||||||
|
|
||||||
|
def get_db_connection():
|
||||||
|
conn = sqlite3.connect('urls.db')
|
||||||
|
return conn
|
||||||
|
|
||||||
|
class URLRequest(BaseModel):
|
||||||
|
url: str
|
||||||
|
|
||||||
@app.get("/")
|
@app.get("/")
|
||||||
def home():
|
def home():
|
||||||
return {"message": "URL Shortener API"}
|
return {"message": "URL Shortener API"}
|
||||||
@@ -35,7 +32,6 @@ def home():
|
|||||||
@app.post("/shorten")
|
@app.post("/shorten")
|
||||||
def shorten_url(request: URLRequest):
|
def shorten_url(request: URLRequest):
|
||||||
short_code = generate_short_code()
|
short_code = generate_short_code()
|
||||||
|
|
||||||
conn = get_db_connection()
|
conn = get_db_connection()
|
||||||
|
|
||||||
while conn.execute("SELECT 1 FROM urls WHERE short_code = ?", (short_code,)).fetchone():
|
while conn.execute("SELECT 1 FROM urls WHERE short_code = ?", (short_code,)).fetchone():
|
||||||
@@ -57,7 +53,6 @@ def redirect_to_url(short_code: str):
|
|||||||
raise HTTPException(status_code=404, detail="Shortened URL not found")
|
raise HTTPException(status_code=404, detail="Shortened URL not found")
|
||||||
|
|
||||||
original_url, clicks = url_data
|
original_url, clicks = url_data
|
||||||
|
|
||||||
conn.execute("UPDATE urls SET clicks = ? WHERE short_code = ?", (clicks + 1, short_code))
|
conn.execute("UPDATE urls SET clicks = ? WHERE short_code = ?", (clicks + 1, short_code))
|
||||||
conn.commit()
|
conn.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user