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)