Blorg-Backend/main.py

90 lines
1.9 KiB
Python

from typing import Union
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
import dbHandler
dbConnection = dbHandler.connect(database="blorgdb",
host="172.20.0.10",
user="dev",
password="dev",
port="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)
""")
print(dbHandler.execQuery(dbConnection, "SELECT * FROM categories"))
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!"}