80 lines
1.5 KiB
Python
80 lines
1.5 KiB
Python
from typing import Union
|
|
|
|
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
from pydantic import BaseModel
|
|
|
|
import psycopg2
|
|
|
|
dbconn = psycopg2.connect(database="blorgdb",
|
|
host="172.20.0.10",
|
|
user="dev",
|
|
password="dev",
|
|
port="5432")
|
|
|
|
dbcursor = dbconn.cursor()
|
|
|
|
dbcursor.execute("""
|
|
DO $$
|
|
BEGIN
|
|
IF (EXISTS (SELECT *
|
|
FROM INFORMATION_SCHEMA.TABLES
|
|
WHERE TABLE_NAME = 'users'))
|
|
THEN
|
|
RAISE NOTICE 'Table does exist!';
|
|
ELSE
|
|
RAISE NOTICE 'User Table does not exist! Creating table.';
|
|
CREATE TABLE users (
|
|
UserID int,
|
|
FirstName varchar(255),
|
|
LastName varchar(255),
|
|
PasswordHash varchar(255)
|
|
);
|
|
END IF;
|
|
END;
|
|
$$""")
|
|
|
|
|
|
#print(dbcursor.fetchall())
|
|
|
|
for notice in dbconn.notices:
|
|
print("(SQL SERVER) " + notice)
|
|
|
|
dbconn.commit()
|
|
dbcursor.close()
|
|
dbconn.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!"}
|