Skip to content

Commit d5bce39

Browse files
authored
Merge pull request #44 from bugout-dev/fix-resource-db-efficient
Removed 1 sql request in list resources
2 parents e870f5c + 59acded commit d5bce39

1 file changed

Lines changed: 5 additions & 10 deletions

File tree

brood/resources/api.py

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
from .version import BROOD_RESOURCES_VERSION
2222
from ..data import VersionResponse
2323
from .. import models as brood_models
24-
from ..db import yield_db_session_from_env
25-
from ..middleware import get_current_user
24+
from ..db import yield_db_session_from_env, yield_db_read_only_session
25+
from ..middleware import get_current_user, get_current_user_with_groups
2626
from ..settings import ORIGINS, DOCS_TARGET_PATH, BROOD_OPENAPI_LIST
2727

2828
SUBMODULE_NAME = "resources"
@@ -126,8 +126,8 @@ async def create_resource_handler(
126126
@app.get("/", tags=["resources"], response_model=data.ResourcesListResponse)
127127
async def get_resources_list_handler(
128128
request: Request,
129-
current_user: brood_models.User = Depends(get_current_user),
130-
db_session=Depends(yield_db_session_from_env),
129+
current_user: brood_models.User = Depends(get_current_user_with_groups),
130+
db_session=Depends(yield_db_read_only_session),
131131
) -> data.ResourcesListResponse:
132132
"""
133133
Get a list of available resources for the user.
@@ -141,12 +141,7 @@ async def get_resources_list_handler(
141141
del params["application_id"]
142142

143143
try:
144-
group_users_list = (
145-
db_session.query(brood_models.GroupUser)
146-
.filter(brood_models.GroupUser.user_id == current_user.id)
147-
.all()
148-
)
149-
user_groups_ids = [group.group_id for group in group_users_list]
144+
user_groups_ids = [group.group_id for group in current_user.groups]
150145
resources = actions.get_list_of_resources(
151146
db_session, current_user.id, user_groups_ids, params, application_id
152147
)

0 commit comments

Comments
 (0)