Skip to content

Commit c23bfea

Browse files
authored
Merge pull request #28 from mts-ai/feature/move-generic-sqla-code
generic code has moved from sqla examples
2 parents de9c5fc + dd7640e commit c23bfea

File tree

21 files changed

+173
-95
lines changed

21 files changed

+173
-95
lines changed

examples/api_for_sqlalchemy/api/base.py

Lines changed: 0 additions & 46 deletions
This file was deleted.
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
from examples.api_for_sqlalchemy.api.base import DetailViewBaseGeneric, ListViewBaseGeneric
1+
from fastapi import Depends
2+
3+
from examples.api_for_sqlalchemy.extensions.sqlalchemy import Connector
4+
from fastapi_jsonapi.misc.sqla.generics.base import DetailViewBaseGeneric, ListViewBaseGeneric
25

36

47
class ChildDetail(DetailViewBaseGeneric):
5-
pass
8+
session_dependency = Depends(Connector.get_session)
69

710

811
class ChildList(ListViewBaseGeneric):
9-
pass
12+
session_dependency = Depends(Connector.get_session)
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
from examples.api_for_sqlalchemy.api.base import DetailViewBaseGeneric, ListViewBaseGeneric
1+
from fastapi import Depends
2+
3+
from examples.api_for_sqlalchemy.extensions.sqlalchemy import Connector
4+
from fastapi_jsonapi.misc.sqla.generics.base import DetailViewBaseGeneric, ListViewBaseGeneric
25

36

47
class ParentDetail(DetailViewBaseGeneric):
5-
pass
8+
session_dependency = Depends(Connector.get_session)
69

710

811
class ParentList(ListViewBaseGeneric):
9-
pass
12+
session_dependency = Depends(Connector.get_session)

examples/api_for_sqlalchemy/api/post.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
from sqlalchemy.ext.asyncio import AsyncSession
44
from starlette import status
55

6-
from examples.api_for_sqlalchemy.api.base import DetailViewBaseGeneric, ListViewBaseGeneric
76
from examples.api_for_sqlalchemy.extensions.sqlalchemy import Connector
8-
from examples.api_for_sqlalchemy.helpers.factories.meta_base import FactoryUseMode
97
from examples.api_for_sqlalchemy.helpers.factories.post import ErrorCreatePostObject, PostFactory
108
from examples.api_for_sqlalchemy.models.schemas import (
119
PostInSchema,
@@ -15,20 +13,24 @@
1513
BadRequest,
1614
HTTPException,
1715
)
16+
from fastapi_jsonapi.misc.sqla.factories.meta_base import FactoryUseMode
17+
from fastapi_jsonapi.misc.sqla.generics.base import DetailViewBaseGeneric, ListViewBaseGeneric
1818
from fastapi_jsonapi.querystring import QueryStringManager
1919
from fastapi_jsonapi.schema import JSONAPIResultDetailSchema
2020

2121

2222
class PostDetail(DetailViewBaseGeneric):
23-
...
23+
session_dependency = Depends(Connector.get_session)
2424

2525

2626
class PostList(ListViewBaseGeneric):
27+
session_dependency = Depends(Connector.get_session)
28+
2729
async def post(
2830
self,
2931
data: PostInSchema,
3032
query_params: QueryStringManager,
31-
session: AsyncSession = Depends(Connector.get_session),
33+
session: AsyncSession = session_dependency,
3234
) -> JSONAPIResultDetailSchema:
3335
try:
3436
post_obj = await PostFactory.create(

examples/api_for_sqlalchemy/api/user.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
from fastapi import Depends, status
22
from sqlalchemy.ext.asyncio import AsyncSession
33

4-
from examples.api_for_sqlalchemy.api.base import DetailViewBaseGeneric, ListViewBaseGeneric
54
from examples.api_for_sqlalchemy.extensions.sqlalchemy import Connector
6-
from examples.api_for_sqlalchemy.helpers.factories.meta_base import FactoryUseMode
75
from examples.api_for_sqlalchemy.helpers.factories.user import ErrorCreateUserObject, UserFactory
8-
from examples.api_for_sqlalchemy.helpers.updaters.exceptions import ObjectNotFound
96
from examples.api_for_sqlalchemy.helpers.updaters.update_user import ErrorUpdateUserObject, UpdateUser
107
from examples.api_for_sqlalchemy.models import User
118
from examples.api_for_sqlalchemy.models.schemas import UserPatchSchema, UserSchema
@@ -15,18 +12,23 @@
1512
BadRequest,
1613
HTTPException,
1714
)
15+
from fastapi_jsonapi.misc.sqla.factories.meta_base import FactoryUseMode
16+
from fastapi_jsonapi.misc.sqla.generics.base import DetailViewBaseGeneric, ListViewBaseGeneric
17+
from fastapi_jsonapi.misc.sqla.updaters.exceptions import ObjectNotFound
1818
from fastapi_jsonapi.querystring import QueryStringManager
1919
from fastapi_jsonapi.schema import JSONAPIResultDetailSchema
2020

2121

2222
class UserDetail(DetailViewBaseGeneric):
23+
session_dependency = Depends(Connector.get_session)
24+
2325
@classmethod
2426
async def patch(
2527
cls,
2628
obj_id,
2729
data: UserPatchSchema,
2830
query_params: QueryStringManager,
29-
session: AsyncSession = Depends(Connector.get_session),
31+
session: AsyncSession = session_dependency,
3032
) -> UserSchema:
3133
user_obj: User
3234
try:
@@ -46,11 +48,13 @@ async def patch(
4648

4749

4850
class UserList(ListViewBaseGeneric):
51+
session_dependency = Depends(Connector.get_session)
52+
4953
async def post(
5054
self,
5155
data: UserInSchema,
5256
query_params: QueryStringManager,
53-
session: AsyncSession = Depends(Connector.get_session),
57+
session: AsyncSession = session_dependency,
5458
) -> JSONAPIResultDetailSchema:
5559
user_obj: User = await UserFactory.create_object_generic(
5660
data_as_schema=data,

examples/api_for_sqlalchemy/api/user_bio.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,29 @@
11
from fastapi import Depends
22
from sqlalchemy.ext.asyncio import AsyncSession
33

4-
from examples.api_for_sqlalchemy.api.base import DetailViewBaseGeneric, ListViewBaseGeneric
54
from examples.api_for_sqlalchemy.extensions.sqlalchemy import Connector
6-
from examples.api_for_sqlalchemy.helpers.factories.meta_base import FactoryUseMode
75
from examples.api_for_sqlalchemy.helpers.factories.user_bio import ErrorCreateUserBioObject, UserBioFactory
86
from examples.api_for_sqlalchemy.models import UserBio
97
from examples.api_for_sqlalchemy.models.schemas.user_bio import UserBioInSchema
108
from fastapi_jsonapi import SqlalchemyEngine
9+
from fastapi_jsonapi.misc.sqla.factories.meta_base import FactoryUseMode
10+
from fastapi_jsonapi.misc.sqla.generics.base import DetailViewBaseGeneric, ListViewBaseGeneric
1111
from fastapi_jsonapi.querystring import QueryStringManager
1212
from fastapi_jsonapi.schema import JSONAPIResultDetailSchema
1313

1414

1515
class UserBioDetail(DetailViewBaseGeneric):
16-
...
16+
session_dependency = Depends(Connector.get_session)
1717

1818

1919
class UserBioList(ListViewBaseGeneric):
20+
session_dependency = Depends(Connector.get_session)
21+
2022
async def post(
2123
self,
2224
data: UserBioInSchema,
2325
query_params: QueryStringManager,
24-
session: AsyncSession = Depends(Connector.get_session),
26+
session: AsyncSession = session_dependency,
2527
) -> JSONAPIResultDetailSchema:
2628
user_bio_obj: UserBio = await UserBioFactory.create_object_generic(
2729
data_as_schema=data,

examples/api_for_sqlalchemy/helpers/factories/post.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
)
66

77
from examples.api_for_sqlalchemy.models import Post, User
8-
from fastapi_jsonapi.querystring import HeadersQueryStringManager
9-
10-
from .exceptions import ErrorCreateObject
11-
from .faker import fake
12-
from .meta_base import (
8+
from fastapi_jsonapi.misc.sqla.factories.exceptions import ErrorCreateObject
9+
from fastapi_jsonapi.misc.sqla.factories.meta_base import (
1310
BaseFactory,
1411
FactoryUseMode,
1512
)
13+
from fastapi_jsonapi.querystring import HeadersQueryStringManager
14+
15+
from .faker import fake
1616

1717

1818
class ErrorCreatePostObject(ErrorCreateObject):

examples/api_for_sqlalchemy/helpers/factories/user.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@
66

77
from examples.api_for_sqlalchemy.models import User
88
from examples.api_for_sqlalchemy.models.enums import UserStatusEnum
9-
from fastapi_jsonapi.querystring import HeadersQueryStringManager
10-
11-
from .exceptions import ErrorCreateObject
12-
from .faker import fake
13-
from .meta_base import (
9+
from fastapi_jsonapi.misc.sqla.factories.exceptions import ErrorCreateObject
10+
from fastapi_jsonapi.misc.sqla.factories.meta_base import (
1411
BaseFactory,
1512
FactoryUseMode,
1613
)
14+
from fastapi_jsonapi.querystring import HeadersQueryStringManager
15+
16+
from .faker import fake
1717

1818

1919
class ErrorCreateUserObject(ErrorCreateObject):

examples/api_for_sqlalchemy/helpers/factories/user_bio.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
)
66

77
from examples.api_for_sqlalchemy.models import User, UserBio
8-
from fastapi_jsonapi.querystring import HeadersQueryStringManager
9-
10-
from .exceptions import ErrorCreateObject
11-
from .faker import fake
12-
from .meta_base import (
8+
from fastapi_jsonapi.misc.sqla.factories.exceptions import ErrorCreateObject
9+
from fastapi_jsonapi.misc.sqla.factories.meta_base import (
1310
BaseFactory,
1411
FactoryUseMode,
1512
)
13+
from fastapi_jsonapi.querystring import HeadersQueryStringManager
14+
15+
from .faker import fake
1616

1717

1818
class ErrorCreateUserBioObject(ErrorCreateObject):

examples/api_for_sqlalchemy/helpers/updaters/update_post.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,11 @@
77
)
88

99
from examples.api_for_sqlalchemy.models import Post
10-
from fastapi_jsonapi.querystring import HeadersQueryStringManager
11-
12-
from .exceptions import ErrorUpdateObject
13-
from .meta_base import (
10+
from fastapi_jsonapi.misc.sqla.updaters.exceptions import ErrorUpdateObject
11+
from fastapi_jsonapi.misc.sqla.updaters.meta_base import (
1412
BaseUpdater,
1513
)
14+
from fastapi_jsonapi.querystring import HeadersQueryStringManager
1615

1716

1817
class ErrorUpdatePostObject(ErrorUpdateObject):

0 commit comments

Comments
 (0)