1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- from sqlalchemy import null
- from starlette.types import Message
- from fastapi import FastAPI, Request, Depends
- from starlette.middleware.cors import CORSMiddleware
- import base64
- import json
- import dataset
- from datetime import datetime
- # from starlette.middleware.authentication import AuthenticationMiddleware
- from app.crud.crud_user import user
- from app.api.api_v1.api import api_router
- from app.core.config import settings
- from app.api import deps
- from sqlalchemy.orm import Session
- app = FastAPI(
- title=settings.PROJECT_NAME, openapi_url=f"{settings.API_V1_STR}/openapi.json")
- # Set all CORS enabled origins
- # allow_origins=[str(origin) for origin in settings.BACKEND_CORS_ORIGINS],
- if settings.BACKEND_CORS_ORIGINS:
- app.add_middleware(
- CORSMiddleware,
- # AuthenticationMiddleware,
- allow_origins=["*"],
- allow_credentials=True,
- allow_methods=["*"],
- allow_headers=["*"],
- )
- # async def set_body(request: Request, body: bytes):
- # async def receive() -> Message:
- # return {"type": "http.request", "body": body}
- # request._receive = receive
-
- # async def get_body(request: Request) -> bytes:
- # body = await request.body()
- # await set_body(request, body)
- # return body
-
- # @app.middleware("http")
- # async def app_entry(request: Request, call_next,
- # ):
- # db = dataset.connect(
- # 'mysql://choozmo:pAssw0rd@db.ptt.cx:3306/arkcard?charset=utf8mb4'
- # )
- # await set_body(request, await request.body())
- # headers = str(request.headers).replace("\"","\'")
- # try:
- # userid = int(json.loads(base64.b64decode(request.headers['authorization'][7:].split('.')[1]).decode('utf-8'))['sub'])
- # except:
- # if( "/api/v1/line/collection/" or "/api/v1/line/receive/" or "/api/v1/line/shop/" in request.url.path):
- # lineid = request.url.path.split("/")[-1]
-
- # sql = 'SELECT id, userid FROM users where userid =\'' + lineid + '\''
- # try:
- # userid = int(db.query(sql).next()['id'])
- # except:
- # userid = -1
- # db.query('Insert into log (create_time, url_path, headers, userid) VALUE (\'' + str(datetime.now()) + '\' ,\'' + request.url.path + '\' , \"' + headers + '\" , '+ str(userid) + ')')
- # response = await call_next(request)
- # return response
- app.include_router(api_router, prefix=settings.API_V1_STR)
|