Coverage for apps/kwai-api/src/kwai_api/v1/portal/news/endpoints.py: 100%
15 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module for defining endpoints for portal/news."""
3from fastapi import APIRouter, Depends
4from kwai_bc_portal.get_news_items import GetNewsItems, GetNewsItemsCommand
5from kwai_bc_portal.news.news_item_db_repository import NewsItemDbRepository
6from kwai_core.db.database import Database
7from kwai_core.json_api import PaginationModel
9from kwai_api.dependencies import create_database
10from kwai_api.v1.portal.news.presenters import JsonApiNewsItemsPresenter
11from kwai_api.v1.portal.news.schemas import NewsItemsDocument
14router = APIRouter()
17@router.get("/news")
18async def get_news(
19 pagination: PaginationModel = Depends(PaginationModel),
20 db: Database = Depends(create_database),
21) -> NewsItemsDocument:
22 """Get news items for the portal.
24 Only promoted news items are returned for the portal.
25 """
26 command = GetNewsItemsCommand(
27 offset=pagination.offset or 0, limit=pagination.limit or 10, promoted=True
28 )
29 presenter = JsonApiNewsItemsPresenter()
30 await GetNewsItems(NewsItemDbRepository(db), presenter).execute(command)
31 return presenter.get_document()