from typing import Union from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from pydantic import BaseModel import dbHandler dbConnection = dbHandler.connect("blorgdb", "172.20.0.10", "dev", "dev", "5432") dbHandler.initTable(dbConnection, "Users", """ ID SERIAL PRIMARY KEY, Username VARCHAR(255), FirstName VARCHAR(255), LastName VARCHAR(255), Description VARCHAR(255), Country VARCHAR(255), Theme VARCHAR(255), AccentColor VARCHAR(255), PasswordHash VARCHAR(255) """) dbHandler.initTable(dbConnection, "SignOns", """ ID SERIAL PRIMARY KEY, UserID VARCHAR(255), LoginSuccess BOOLEAN, DateAttempted VARCHAR(255), IPLocationAttempted VARCHAR(255) """) dbHandler.initTable(dbConnection, "AuthTokens", """ ID SERIAL PRIMARY KEY, Token VARCHAR(255), OwnerID INTEGER, DateCreated TIMESTAMP, DateExpiry TIMESTAMP, IPLocationCreated VARCHAR(255) """) dbHandler.initTable(dbConnection, "Blogs", """ ID SERIAL PRIMARY KEY, AuthorID INTEGER, CategoryID INTEGER, DatePosted TIMESTAMP, Description VARCHAR(255) """) dbHandler.initTable(dbConnection, "Categories", """ ID SERIAL PRIMARY KEY, Name VARCHAR(255) """) dbHandler.insertRow(dbConnection, 'users', ['username', 'firstname', 'lastname', 'description', 'country', 'theme', 'accentcolor', 'passwordhash'], ['cspark', 'Curt', 'Spark', 'A short description', 'United Kingdom', 'light', 'purple', 'hash256']) print(dbHandler.execQuery(dbConnection, "SELECT * FROM users")) dbConnection.close() app = FastAPI() origins = [ "http://localhost", "http://localhost:8080", ] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.get("/") def getroot(): return {"Hello": "World"} class ApiBody(BaseModel): username: str password: str @app.post("/api") def postapi(body: ApiBody): print(body.username) print(body.password) return body @app.get("/api") def getapi(): return {"Hello": "API!"}