mirror of
https://github.com/rzmk/learnhouse.git
synced 2025-12-19 04:19:25 +00:00
feat: add ability to link courses to products
This commit is contained in:
parent
3f96f1ec9f
commit
f0aeb4605c
8 changed files with 446 additions and 2 deletions
|
|
@ -4,7 +4,7 @@ from src.core.events.database import get_db_session
|
|||
from src.db.payments.payments import PaymentsConfig, PaymentsConfigCreate, PaymentsConfigRead, PaymentsConfigUpdate
|
||||
from src.db.users import PublicUser
|
||||
from src.security.auth import get_current_user
|
||||
from src.services.payments.payments import (
|
||||
from src.services.payments.payments_config import (
|
||||
create_payments_config,
|
||||
get_payments_config,
|
||||
update_payments_config,
|
||||
|
|
@ -12,6 +12,11 @@ from src.services.payments.payments import (
|
|||
)
|
||||
from src.db.payments.payments_products import PaymentsProductCreate, PaymentsProductRead, PaymentsProductUpdate
|
||||
from src.services.payments.payments_products import create_payments_product, delete_payments_product, get_payments_product, list_payments_products, update_payments_product
|
||||
from src.services.payments.payments_courses import (
|
||||
link_course_to_product,
|
||||
unlink_course_from_product,
|
||||
get_courses_by_product
|
||||
)
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
|
@ -105,3 +110,41 @@ async def api_delete_payments_product(
|
|||
):
|
||||
await delete_payments_product(request, org_id, product_id, current_user, db_session)
|
||||
return {"message": "Payments product deleted successfully"}
|
||||
|
||||
@router.post("/{org_id}/products/{product_id}/courses/{course_id}")
|
||||
async def api_link_course_to_product(
|
||||
request: Request,
|
||||
org_id: int,
|
||||
product_id: int,
|
||||
course_id: int,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
return await link_course_to_product(
|
||||
request, org_id, course_id, product_id, current_user, db_session
|
||||
)
|
||||
|
||||
@router.delete("/{org_id}/products/{product_id}/courses/{course_id}")
|
||||
async def api_unlink_course_from_product(
|
||||
request: Request,
|
||||
org_id: int,
|
||||
product_id: int,
|
||||
course_id: int,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
return await unlink_course_from_product(
|
||||
request, org_id, course_id, current_user, db_session
|
||||
)
|
||||
|
||||
@router.get("/{org_id}/products/{product_id}/courses")
|
||||
async def api_get_courses_by_product(
|
||||
request: Request,
|
||||
org_id: int,
|
||||
product_id: int,
|
||||
current_user: PublicUser = Depends(get_current_user),
|
||||
db_session: Session = Depends(get_db_session),
|
||||
):
|
||||
return await get_courses_by_product(
|
||||
request, org_id, product_id, current_user, db_session
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue