teachers / app.py
JairoDanielMT's picture
Upload 9 files
f5c0d34 verified
raw
history blame
2.09 kB
import os
from fastapi import FastAPI, Depends, HTTPException, status
from fastapi.responses import FileResponse
from fastapi.security import HTTPBasic, HTTPBasicCredentials
from fastapi.middleware.cors import CORSMiddleware
from dotenv import load_dotenv
from create_database import create_db
from routers import teacher, review, user
# Cargar variables de entorno desde el archivo .env
load_dotenv()
if not os.path.exists("site.db"):
create_db()
# Obtener credenciales de las variables de entorno
BASIC_AUTH_USER = os.getenv("BASIC_AUTH_USER")
BASIC_AUTH_PASSWORD = os.getenv("BASIC_AUTH_PASSWORD")
app = FastAPI(
title="API de revisión de profesores",
description="API para revisar profesores",
version="2.8.7",
openapi_url="/teacher-openapi.json",
docs_url="/teacher-docs",
redoc_url="/teacher-redoc",
contact={
"name": "teacher",
"url": "https://www.test.com",
"email": "calificandoprofesoruniversidad@gmail.com",
},
license_info={"name": "MIT", "url": "https://opensource.org/licenses/MIT"},
)
# CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
security = HTTPBasic()
def authenticate(credentials: HTTPBasicCredentials = Depends(security)):
if (
credentials.username != BASIC_AUTH_USER
or credentials.password != BASIC_AUTH_PASSWORD
):
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Credenciales incorrectas",
headers={"WWW-Authenticate": "Basic"},
)
@app.get(
"/",
summary="Saludo",
description="Saludo de la API",
)
def read_root():
return {"message": "Bienvenido a la API de la revisión de profesores"}
app.include_router(teacher.router, dependencies=[Depends(authenticate)])
app.include_router(review.router, dependencies=[Depends(authenticate)])
app.include_router(user.router, dependencies=[Depends(authenticate)])