File size: 2,200 Bytes
3e44c55 9be5d05 8450c71 27be269 9e798a1 b856986 9e798a1 c353d4b 01a1238 1a92f7e ffcfb71 4cedc0e 3e44c55 afbb33a 3e44c55 1a92f7e 3e44c55 8450c71 9be5d05 6f4f5f9 9be5d05 8450c71 b856986 42f4a62 8450c71 9be5d05 8450c71 27be269 9e798a1 c353d4b 01a1238 8450c71 9be5d05 8450c71 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
from fastapi import FastAPI, BackgroundTasks
from fastapi.middleware.cors import CORSMiddleware
from tortoise import Tortoise
from .Users.UserRoutes import user_router
from .Webhooks.webhookRoute import webhook_router
from .Subscriptions.SubscriptionRoutes import subscription_router
from .modelInit import TORTOISE_ORM
from .Payments.PaymentsRoutes import payment_router
from .Plans.PlanRoutes import plan_router
from .Portals.PortalRoutes import portal_router
from .Metrics.MetricsRoutes import metrics_router
from .Messages.MessagesRoute import message_router
from .Subscriptions.background_tasks import check_expiring_subscriptions
# from .Subscriptions.background_tasks import check_expiring_subscriptions
import asyncio, os
import logging
import subprocess
async def periodic_task():
"""
Periodically run the background task to check for expiring subscriptions.
"""
while True:
await check_expiring_subscriptions()
await asyncio.sleep(100) # Run every hour (adjust the interval as needed)
logging.basicConfig(level=logging.INFO)
app = FastAPI()
# Configure CORS to allow all origins
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Allows all origins
allow_credentials=True, # Allows cookies and authentication headers
allow_methods=["*"], # Allows all HTTP methods (GET, POST, PUT, DELETE, etc.)
allow_headers=["*"], # Allows all headers
)
@app.on_event("startup")
async def startup_event():
await Tortoise.init(config=TORTOISE_ORM)
await Tortoise.generate_schemas()
# print("check subs")
# asyncio.create_task(periodic_task())
# print("checked subs")
@app.get("/")
async def landing_page():
return {"code": 200, "message": "still running"}
# Include routers
app.include_router(user_router)
app.include_router(webhook_router)
app.include_router(subscription_router)
app.include_router(payment_router)
app.include_router(plan_router)
app.include_router(portal_router)
app.include_router(metrics_router)
app.include_router(message_router)
# if __name__ == "__main__":
# import uvicorn
# # Run the FastAPI app located at App.app:app
# uvicorn.run(app, host="0.0.0.0", port=8000)
|