90 lines
1.9 KiB
Python
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!"}
|