Ongoing enhancements

This commit is contained in:
2025-07-24 14:33:25 +02:00
parent 0b27385a24
commit 4baa544458
16 changed files with 170 additions and 8198 deletions
+30 -24
View File
@@ -3,8 +3,8 @@ from fastapi.security import OAuth2PasswordBearer
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from typing import List, Annotated, Optional
import models
from database import engine, SessionLocal
from sustApp.models.models import Base, Members, Payments
from sustApp.models.database import engine, SessionLocal
from sqlalchemy.orm import Session
from datetime import datetime
@@ -12,8 +12,14 @@ from datetime import datetime
#ngrok http http://localhost:8000
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
#oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
models.Base.metadata.create_all(bind=engine)
Base.metadata.create_all(bind=engine)
origins = [
"http://localhost.tiangolo.com",
@@ -75,21 +81,21 @@ db_dependency = Annotated[Session, Depends(get_db)]
@app.get("/members/", response_model=List[MemberBase])
async def read_members(db: db_dependency, skip: int = 0, limit: int = 100 ):
members = db.query(models.Members).offset(skip).limit(limit).all()
members = db.query(Members).offset(skip).limit(limit).all()
if not members:
raise HTTPException(status_code=400, detail='No members')
return members
@app.get("/member/{member_id}")
async def read_member(member_id: int, db: db_dependency): #, token: Annotated[str, Depends(oauth2_scheme)]):
result = db.query(models.Members).filter(models.Members.id == member_id).first()
result = db.query(Members).filter(Members.id == member_id).first()
if not result:
raise HTTPException(status_code=400, detail='Member does not exist')
return result
@app.get("/payments/{member_id}")
async def read_payments(member_id: int, db: db_dependency):
result = db.query(models.Members).filter(models.Members.id == member_id).all()
result = db.query(Members).filter(Members.id == member_id).all()
if not result:
raise HTTPException(status_code=400, detail=f'No payments found for member {member_id}')
return result
@@ -97,34 +103,34 @@ async def read_payments(member_id: int, db: db_dependency):
@app.post("/members/")
async def create_member(member: MemberBase, db: db_dependency):
#db_member = models.Members(**member.model_dump())
db_member = models.Members(member_firstname=member.member_firstname,
member_surname=member.member_surname,
member_active=member.member_active)
db_member = Members(member_firstname=member.member_firstname,
member_surname=member.member_surname,
member_active=member.member_active)
db.add(db_member)
db.commit()
@app.post("/fullmembers/")
async def create_members(members: List[MemberBase], db: db_dependency):
for member in members:
db_member = models.Members(member_count=member.member_count,
member_firstname=member.member_firstname,
member_firstname_spouse=member.member_firstname_spouse,
member_surname=member.member_surname,
member_suffix=member.member_suffix,
member_street=member.member_street,
member_streetnumber=member.member_streetnumber,
member_email=member.member_email,
member_zip=member.member_zip,
member_city=member.member_city,
member_active=member.member_active,
member_gender=member.member_gender,
member_connected=member.member_connected)
db_member = Members(member_count=member.member_count,
member_firstname=member.member_firstname,
member_firstname_spouse=member.member_firstname_spouse,
member_surname=member.member_surname,
member_suffix=member.member_suffix,
member_street=member.member_street,
member_streetnumber=member.member_streetnumber,
member_email=member.member_email,
member_zip=member.member_zip,
member_city=member.member_city,
member_active=member.member_active,
member_gender=member.member_gender,
member_connected=member.member_connected)
db.add(db_member)
#db.commit()
#db.refresh(db_member)
if not member.payments is None:
for payment in member.payments:
db_payment = models.Payments(payment_date=payment.payment_date,
member_id=db_member.id)
db_payment = Payments(payment_date=payment.payment_date,
member_id=db_member.id)
db.add(db_payment)
db.commit()