Migrate project to uv and add Docker CI
This commit is contained in:
38
main.py
38
main.py
@@ -1,11 +1,20 @@
|
||||
from fastapi import FastAPI, HTTPException
|
||||
from pydantic import BaseModel, Field
|
||||
from contextlib import asynccontextmanager
|
||||
from datetime import datetime
|
||||
import os
|
||||
import sqlite3
|
||||
from datetime import datetime
|
||||
from typing import Optional, List
|
||||
from typing import List, Optional
|
||||
|
||||
app = FastAPI(title="Shopping List API", version="0.1.0")
|
||||
from fastapi import FastAPI, HTTPException
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(_: FastAPI):
|
||||
init_db()
|
||||
yield
|
||||
|
||||
|
||||
app = FastAPI(title="Shopping List API", version="0.1.0", lifespan=lifespan)
|
||||
|
||||
|
||||
def get_db_path():
|
||||
@@ -50,10 +59,6 @@ def init_db():
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
@app.on_event("startup")
|
||||
def startup():
|
||||
init_db()
|
||||
|
||||
# Request models
|
||||
class Product(BaseModel):
|
||||
name: str = Field(..., min_length=1, description="Product name")
|
||||
@@ -71,20 +76,20 @@ class ListItemUpdate(BaseModel):
|
||||
|
||||
# Response models
|
||||
class ProductResponse(Product):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
id: int
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class ListResponse(ListModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
id: int
|
||||
created_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class ListItemResponse(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
id: int
|
||||
list_id: int
|
||||
product_id: int
|
||||
@@ -93,9 +98,6 @@ class ListItemResponse(BaseModel):
|
||||
product_name: Optional[str] = None
|
||||
product_sku: Optional[str] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
class ListWithItems(ListResponse):
|
||||
items: List[ListItemResponse] = []
|
||||
|
||||
|
||||
Reference in New Issue
Block a user