99from conduit .core .dependencies import (
1010 CurrentOptionalUser ,
1111 CurrentUser ,
12- DBSession ,
1312 IArticleService ,
1413 Pagination ,
1514 QueryFilters ,
15+ UnitOfWork ,
1616)
1717
1818router = APIRouter ()
2121@router .get ("/feed" , response_model = ArticlesFeedResponse )
2222async def get_article_feed (
2323 pagination : Pagination ,
24- session : DBSession ,
24+ uow : UnitOfWork ,
2525 current_user : CurrentUser ,
2626 article_service : IArticleService ,
2727) -> ArticlesFeedResponse :
2828 """
2929 Get article feed from following users.
3030 """
3131 articles_feed_dto = await article_service .get_articles_feed (
32- session = session ,
32+ uow = uow ,
3333 current_user = current_user ,
3434 limit = pagination .limit ,
3535 offset = pagination .offset ,
@@ -41,15 +41,15 @@ async def get_article_feed(
4141async def get_global_article_feed (
4242 pagination : Pagination ,
4343 articles_filters : QueryFilters ,
44- session : DBSession ,
44+ uow : UnitOfWork ,
4545 current_user : CurrentOptionalUser ,
4646 article_service : IArticleService ,
4747) -> ArticlesFeedResponse :
4848 """
4949 Get global article feed.
5050 """
5151 articles_feed_dto = await article_service .get_articles_by_filters (
52- session = session ,
52+ uow = uow ,
5353 current_user = current_user ,
5454 tag = articles_filters .tag ,
5555 author = articles_filters .author ,
@@ -63,31 +63,31 @@ async def get_global_article_feed(
6363@router .get ("/{slug}" , response_model = ArticleResponse )
6464async def get_article (
6565 slug : str ,
66- session : DBSession ,
66+ uow : UnitOfWork ,
6767 current_user : CurrentOptionalUser ,
6868 article_service : IArticleService ,
6969) -> ArticleResponse :
7070 """
7171 Get new article by slug.
7272 """
7373 article_dto = await article_service .get_article_by_slug (
74- session = session , slug = slug , current_user = current_user
74+ uow = uow , slug = slug , current_user = current_user
7575 )
7676 return ArticleResponse .from_dto (dto = article_dto )
7777
7878
7979@router .post ("" , response_model = ArticleResponse )
8080async def create_article (
8181 payload : CreateArticleRequest ,
82- session : DBSession ,
82+ uow : UnitOfWork ,
8383 current_user : CurrentUser ,
8484 article_service : IArticleService ,
8585) -> ArticleResponse :
8686 """
8787 Create new article.
8888 """
8989 article_dto = await article_service .create_new_article (
90- session = session , author_id = current_user .id , article_to_create = payload .to_dto ()
90+ uow = uow , author_id = current_user .id , article_to_create = payload .to_dto ()
9191 )
9292 return ArticleResponse .from_dto (dto = article_dto )
9393
@@ -96,15 +96,15 @@ async def create_article(
9696async def update_article (
9797 slug : str ,
9898 payload : UpdateArticleRequest ,
99- session : DBSession ,
99+ uow : UnitOfWork ,
100100 current_user : CurrentUser ,
101101 article_service : IArticleService ,
102102) -> ArticleResponse :
103103 """
104104 Update an article.
105105 """
106106 article_dto = await article_service .update_article_by_slug (
107- session = session ,
107+ uow = uow ,
108108 slug = slug ,
109109 article_to_update = payload .to_dto (),
110110 current_user = current_user ,
@@ -115,45 +115,45 @@ async def update_article(
115115@router .delete ("/{slug}" , status_code = status .HTTP_204_NO_CONTENT )
116116async def delete_article (
117117 slug : str ,
118- session : DBSession ,
118+ uow : UnitOfWork ,
119119 current_user : CurrentUser ,
120120 article_service : IArticleService ,
121121) -> None :
122122 """
123123 Delete an article by slug.
124124 """
125125 await article_service .delete_article_by_slug (
126- session = session , slug = slug , current_user = current_user
126+ uow = uow , slug = slug , current_user = current_user
127127 )
128128
129129
130130@router .post ("/{slug}/favorite" , response_model = ArticleResponse )
131131async def favorite_article (
132132 slug : str ,
133- session : DBSession ,
133+ uow : UnitOfWork ,
134134 current_user : CurrentUser ,
135135 article_service : IArticleService ,
136136) -> ArticleResponse :
137137 """
138138 Favorite an article.
139139 """
140140 article_dto = await article_service .add_article_into_favorites (
141- session = session , slug = slug , current_user = current_user
141+ uow = uow , slug = slug , current_user = current_user
142142 )
143143 return ArticleResponse .from_dto (dto = article_dto )
144144
145145
146146@router .delete ("/{slug}/favorite" , response_model = ArticleResponse )
147147async def unfavorite_article (
148148 slug : str ,
149- session : DBSession ,
149+ uow : UnitOfWork ,
150150 current_user : CurrentUser ,
151151 article_service : IArticleService ,
152152) -> ArticleResponse :
153153 """
154154 Unfavorite an article.
155155 """
156156 article_dto = await article_service .remove_article_from_favorites (
157- session = session , slug = slug , current_user = current_user
157+ uow = uow , slug = slug , current_user = current_user
158158 )
159159 return ArticleResponse .from_dto (dto = article_dto )
0 commit comments