Skip to content

Commit b199f28

Browse files
committed
reduced redundancy
1 parent 4cc78b7 commit b199f28

File tree

1 file changed

+20
-61
lines changed

1 file changed

+20
-61
lines changed

services/catalog/src/simcore_service_catalog/service/catalog_services.py

Lines changed: 20 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -226,19 +226,13 @@ async def get_catalog_service(
226226
service_version: ServiceVersion,
227227
) -> ServiceGetV2:
228228

229-
access_rights = await repo.get_service_access_rights(
230-
key=service_key,
231-
version=service_version,
229+
access_rights = await check_catalog_service(
230+
repo=repo,
232231
product_name=product_name,
232+
user_id=user_id,
233+
service_key=service_key,
234+
service_version=service_version,
233235
)
234-
if not access_rights:
235-
raise CatalogItemNotFoundError(
236-
name=f"{service_key}:{service_version}",
237-
service_key=service_key,
238-
service_version=service_version,
239-
user_id=user_id,
240-
product_name=product_name,
241-
)
242236

243237
service = await repo.get_service_with_history(
244238
product_name=product_name,
@@ -292,32 +286,14 @@ async def update_catalog_service(
292286
product_name=product_name,
293287
)
294288

295-
access_rights = await repo.get_service_access_rights(
296-
key=service_key, version=service_version, product_name=product_name
297-
)
298-
299-
if not access_rights:
300-
raise CatalogItemNotFoundError(
301-
name=f"{service_key}:{service_version}",
302-
service_key=service_key,
303-
service_version=service_version,
304-
user_id=user_id,
305-
product_name=product_name,
306-
)
307-
308-
if not await repo.can_update_service(
289+
# Check access rights first
290+
access_rights = await check_catalog_service(
291+
repo=repo,
309292
product_name=product_name,
310293
user_id=user_id,
311-
key=service_key,
312-
version=service_version,
313-
):
314-
raise CatalogForbiddenError(
315-
name=f"{service_key}:{service_version}",
316-
service_key=service_key,
317-
service_version=service_version,
318-
user_id=user_id,
319-
product_name=product_name,
320-
)
294+
service_key=service_key,
295+
service_version=service_version,
296+
)
321297

322298
# Updates service_meta_data
323299
await repo.update_service(
@@ -379,7 +355,7 @@ async def check_catalog_service(
379355
user_id: UserID,
380356
service_key: ServiceKey,
381357
service_version: ServiceVersion,
382-
) -> None:
358+
) -> list[ServiceAccessRightsAtDB]:
383359
"""Raises if the service canot be read
384360
385361
Raises:
@@ -415,6 +391,8 @@ async def check_catalog_service(
415391
product_name=product_name,
416392
)
417393

394+
return access_rights
395+
418396

419397
async def batch_get_user_services(
420398
repo: ServicesRepository,
@@ -569,34 +547,15 @@ async def get_user_services_ports(
569547
CatalogItemNotFoundError: When service is not found
570548
CatalogForbiddenError: When user doesn't have access rights
571549
"""
572-
# Check access rights first
573-
access_rights = await repo.get_service_access_rights(
574-
key=service_key,
575-
version=service_version,
576-
product_name=product_name,
577-
)
578-
if not access_rights:
579-
raise CatalogItemNotFoundError(
580-
name=f"{service_key}:{service_version}",
581-
service_key=service_key,
582-
service_version=service_version,
583-
user_id=user_id,
584-
product_name=product_name,
585-
)
586550

587-
if not await repo.can_get_service(
551+
# Check access rights first
552+
await check_catalog_service(
553+
repo=repo,
588554
product_name=product_name,
589555
user_id=user_id,
590-
key=service_key,
591-
version=service_version,
592-
):
593-
raise CatalogForbiddenError(
594-
name=f"{service_key}:{service_version}",
595-
service_key=service_key,
596-
service_version=service_version,
597-
user_id=user_id,
598-
product_name=product_name,
599-
)
556+
service_key=service_key,
557+
service_version=service_version,
558+
)
600559

601560
# Get service ports from manifest
602561
return await manifest.get_service_ports(

0 commit comments

Comments
 (0)