add api routes
This commit is contained in:
+4
-1
@@ -1,5 +1,5 @@
|
||||
from fastapi import FastAPI
|
||||
from api.routes import users, keys, coupons, servers, tariffs
|
||||
from api.routes import users, keys, coupons, servers, tariffs, gifts, referrals, misc
|
||||
|
||||
app = FastAPI(
|
||||
title="SoloBot API (preAlpha)",
|
||||
@@ -15,6 +15,9 @@ app.include_router(keys.router, prefix="/api/keys", tags=["Keys"])
|
||||
app.include_router(coupons.router, prefix="/api/coupons", tags=["Coupons"])
|
||||
app.include_router(servers.router, prefix="/api/servers", tags=["Servers"])
|
||||
app.include_router(tariffs.router, prefix="/api/tariffs", tags=["Tariffs"])
|
||||
app.include_router(gifts.router, prefix="/api/gifts", tags=["Gifts"])
|
||||
app.include_router(referrals.router, prefix="/api/referrals", tags=["Referrals"])
|
||||
app.include_router(misc.router, prefix="/api")
|
||||
|
||||
|
||||
@app.get("/api", include_in_schema=False)
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
from fastapi import APIRouter
|
||||
from api.routes.base_crud import generate_crud_router
|
||||
from api.schemas import GiftBase, GiftResponse, GiftUpdate, GiftUsageResponse
|
||||
from database.models import Gift, GiftUsage
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
gift_router = generate_crud_router(
|
||||
model=Gift,
|
||||
schema_response=GiftResponse,
|
||||
schema_create=GiftBase,
|
||||
schema_update=GiftUpdate,
|
||||
identifier_field="gift_id",
|
||||
parameter_name="gift_id",
|
||||
enabled_methods=["get_all", "get_one", "create", "update", "delete"]
|
||||
)
|
||||
router.include_router(gift_router, prefix="", tags=["Gifts"])
|
||||
|
||||
|
||||
gift_usage_router = generate_crud_router(
|
||||
model=GiftUsage,
|
||||
schema_response=GiftUsageResponse,
|
||||
schema_create=None,
|
||||
schema_update=None,
|
||||
identifier_field="gift_id",
|
||||
enabled_methods=["get_all", "get_one", "delete"]
|
||||
)
|
||||
router.include_router(gift_usage_router, prefix="/usages", tags=["GiftUsages"])
|
||||
router.include_router(gift_usage_router, prefix="/usages", tags=["Gifts"])
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
from fastapi import APIRouter
|
||||
from api.routes.base_crud import generate_crud_router
|
||||
from database.models import (
|
||||
Payment, Referral, Notification,
|
||||
ManualBan, TemporaryData, BlockedUser, TrackingSource
|
||||
)
|
||||
from api.schemas import (
|
||||
PaymentResponse, ReferralResponse, NotificationResponse,
|
||||
ManualBanResponse, TemporaryDataResponse, BlockedUserResponse,
|
||||
TrackingSourceResponse
|
||||
)
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
router.include_router(
|
||||
generate_crud_router(
|
||||
model=Payment,
|
||||
schema_response=PaymentResponse,
|
||||
schema_create=None,
|
||||
schema_update=None,
|
||||
identifier_field="id",
|
||||
enabled_methods=["get_all", "get_one", "delete"]
|
||||
),
|
||||
prefix="/payments",
|
||||
tags=["Payments"]
|
||||
)
|
||||
|
||||
router.include_router(
|
||||
generate_crud_router(
|
||||
model=Referral,
|
||||
schema_response=ReferralResponse,
|
||||
schema_create=None,
|
||||
schema_update=None,
|
||||
identifier_field="referred_tg_id",
|
||||
enabled_methods=["get_all", "get_one", "delete"]
|
||||
),
|
||||
prefix="/referrals",
|
||||
tags=["Referrals"]
|
||||
)
|
||||
|
||||
router.include_router(
|
||||
generate_crud_router(
|
||||
model=Notification,
|
||||
schema_response=NotificationResponse,
|
||||
schema_create=None,
|
||||
schema_update=None,
|
||||
identifier_field="tg_id",
|
||||
enabled_methods=["get_all", "get_one", "delete"]
|
||||
),
|
||||
prefix="/notifications",
|
||||
tags=["Notifications"]
|
||||
)
|
||||
|
||||
|
||||
router.include_router(
|
||||
generate_crud_router(
|
||||
model=ManualBan,
|
||||
schema_response=ManualBanResponse,
|
||||
schema_create=None,
|
||||
schema_update=None,
|
||||
identifier_field="tg_id",
|
||||
enabled_methods=["get_all", "get_one", "delete"]
|
||||
),
|
||||
prefix="/manual-bans",
|
||||
tags=["Bans"]
|
||||
)
|
||||
|
||||
|
||||
router.include_router(
|
||||
generate_crud_router(
|
||||
model=BlockedUser,
|
||||
schema_response=BlockedUserResponse,
|
||||
schema_create=None,
|
||||
schema_update=None,
|
||||
identifier_field="tg_id",
|
||||
enabled_methods=["get_all", "get_one", "delete"]
|
||||
),
|
||||
prefix="/blocked-users",
|
||||
tags=["Bans"]
|
||||
)
|
||||
|
||||
|
||||
router.include_router(
|
||||
generate_crud_router(
|
||||
model=TemporaryData,
|
||||
schema_response=TemporaryDataResponse,
|
||||
schema_create=None,
|
||||
schema_update=None,
|
||||
identifier_field="tg_id",
|
||||
enabled_methods=["get_all", "get_one", "delete"]
|
||||
),
|
||||
prefix="/temporary-data",
|
||||
tags=["TemporaryData"]
|
||||
)
|
||||
|
||||
|
||||
router.include_router(
|
||||
generate_crud_router(
|
||||
model=TrackingSource,
|
||||
schema_response=TrackingSourceResponse,
|
||||
schema_create=None,
|
||||
schema_update=None,
|
||||
identifier_field="id",
|
||||
enabled_methods=["get_all", "get_one", "delete"]
|
||||
),
|
||||
prefix="/tracking-sources",
|
||||
tags=["TrackingSources"]
|
||||
)
|
||||
@@ -0,0 +1,13 @@
|
||||
from fastapi import APIRouter
|
||||
from api.routes.base_crud import generate_crud_router
|
||||
from api.schemas import ReferralResponse
|
||||
from database.models import Referral
|
||||
|
||||
router = generate_crud_router(
|
||||
model=Referral,
|
||||
schema_response=ReferralResponse,
|
||||
schema_create=None,
|
||||
schema_update=None,
|
||||
identifier_field="referred_tg_id",
|
||||
enabled_methods=["get_all", "get_one", "delete"]
|
||||
)
|
||||
@@ -4,5 +4,5 @@ from .tariffs import TariffResponse, TariffUpdate, TariffBase
|
||||
from .servers import ServerResponse, ServerBase, ServerUpdate
|
||||
from .coupons import CouponResponse, CouponUsageResponse, CouponBase, CouponUpdate
|
||||
from .referrals import ReferralResponse
|
||||
from .gifts import GiftResponse, GiftUsageResponse
|
||||
from .gifts import GiftResponse, GiftUsageResponse, GiftUpdate, GiftBase
|
||||
from .misc import ManualBanResponse, TemporaryDataResponse, BlockedUserResponse, TrackingSourceResponse, PaymentResponse, NotificationResponse
|
||||
|
||||
@@ -28,5 +28,19 @@ class GiftUsageResponse(BaseModel):
|
||||
tg_id: int
|
||||
used_at: datetime
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
|
||||
class GiftUpdate(BaseModel):
|
||||
recipient_tg_id: Optional[int] = None
|
||||
selected_months: Optional[int] = None
|
||||
expiry_time: Optional[datetime] = None
|
||||
gift_link: Optional[str] = None
|
||||
is_used: Optional[bool] = None
|
||||
is_unlimited: Optional[bool] = None
|
||||
max_usages: Optional[int] = None
|
||||
tariff_id: Optional[int] = None
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
Reference in New Issue
Block a user