Skip to content

Commit 654bd47

Browse files
committed
changing web-server
1 parent 54fdb9d commit 654bd47

File tree

13 files changed

+81
-92
lines changed

13 files changed

+81
-92
lines changed

api/specs/web-server/_catalog.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from models_library.generics import Envelope
1616
from models_library.rest_pagination import Page
1717
from simcore_service_webserver._meta import API_VTAG
18-
from simcore_service_webserver.catalog._rest_controller import (
18+
from simcore_service_webserver.catalog._controller_rest import (
1919
ListServiceParams,
2020
ServicePathParams,
2121
_FromServiceOutputParams,

api/specs/web-server/_catalog_tags.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from models_library.api_schemas_webserver.catalog import CatalogServiceGet
1111
from models_library.generics import Envelope
1212
from simcore_service_webserver._meta import API_VTAG
13-
from simcore_service_webserver.catalog._rest_tags_controller import (
13+
from simcore_service_webserver.catalog._controller_rest_schemas import (
1414
ServicePathParams,
1515
ServiceTagPathParams,
1616
)

services/web/server/src/simcore_service_webserver/catalog/_rest_controller.py renamed to services/web/server/src/simcore_service_webserver/catalog/_controller_rest.py

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,16 @@
3939
from ..security.decorators import permission_required
4040
from ..utils_aiohttp import envelope_json_response
4141
from . import _catalog_rest_client_service, _service
42-
from ._exceptions import (
42+
from ._controller_rest_exceptions import (
4343
DefaultPricingUnitForServiceNotFoundError,
4444
handle_plugin_requests_exceptions,
4545
)
46-
from .controller_rest_schemas import (
46+
from ._controller_rest_schemas import (
4747
CatalogRequestContext,
4848
ListServiceParams,
4949
ServicePathParams,
5050
)
51+
from .controller_rest_schemas import ServicePathParams
5152

5253
_logger = logging.getLogger(__name__)
5354

@@ -377,3 +378,43 @@ async def get_service_pricing_plan(request: Request):
377378
return envelope_json_response(
378379
PricingPlanGet.model_validate(pricing_plan.model_dump())
379380
)
381+
382+
383+
@routes.get(
384+
f"/{API_VTAG}/catalog/services/{{service_key}}/{{service_version}}/tags",
385+
name="list_service_tags",
386+
)
387+
@login_required
388+
@permission_required("service.tag.*")
389+
async def list_service_tags(request: web.Request):
390+
path_params = parse_request_path_parameters_as(ServicePathParams, request)
391+
assert path_params # nosec
392+
raise NotImplementedError
393+
394+
395+
@routes.post(
396+
f"/{API_VTAG}/catalog/services/{{service_key}}/{{service_version}}/tags/{{tag_id}}:add",
397+
name="add_service_tag",
398+
)
399+
@login_required
400+
@permission_required("service.tag.*")
401+
async def add_service_tag(request: web.Request):
402+
path_params = parse_request_path_parameters_as(ServiceTagPathParams, request)
403+
assert path_params # nosec
404+
405+
# responds with parent's resource to get the current state (as with patch/update)
406+
raise NotImplementedError
407+
408+
409+
@routes.post(
410+
f"/{API_VTAG}/catalog/services/{{service_key}}/{{service_version}}/tags/{{tag_id}}:remove",
411+
name="remove_service_tag",
412+
)
413+
@login_required
414+
@permission_required("service.tag.*")
415+
async def remove_service_tag(request: web.Request):
416+
path_params = parse_request_path_parameters_as(ServiceTagPathParams, request)
417+
assert path_params # nosec
418+
419+
# responds with parent's resource to get the current state (as with patch/update)
420+
raise NotImplementedError

services/web/server/src/simcore_service_webserver/catalog/_exceptions.py renamed to services/web/server/src/simcore_service_webserver/catalog/_controller_rest_exceptions.py

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,37 +6,14 @@
66
CatalogItemNotFoundError,
77
)
88

9-
from ..errors import WebServerBaseError
109
from ..exception_handling import (
1110
ExceptionToHttpErrorMap,
1211
HttpErrorInfo,
1312
exception_handling_decorator,
1413
to_exceptions_handlers_map,
1514
)
1615
from ..resource_usage.errors import DefaultPricingPlanNotFoundError
17-
18-
19-
class BaseCatalogError(WebServerBaseError):
20-
msg_template = "Unexpected error occured in catalog submodule"
21-
22-
def __init__(self, msg=None, **ctx):
23-
super().__init__(**ctx)
24-
if msg:
25-
self.msg_template = msg
26-
27-
def debug_message(self):
28-
# Override in subclass
29-
return f"{self.code}: {self}"
30-
31-
32-
class DefaultPricingUnitForServiceNotFoundError(BaseCatalogError):
33-
msg_template = "Default pricing unit not found for service key '{service_key}' and version '{service_version}'"
34-
35-
def __init__(self, *, service_key: str, service_version: str, **ctxs):
36-
super().__init__(**ctxs)
37-
self.service_key = service_key
38-
self.service_version = service_version
39-
16+
from .errors import DefaultPricingUnitForServiceNotFoundError
4017

4118
# mypy: disable-error-code=truthy-function
4219
assert CatalogForbiddenError # nosec

services/web/server/src/simcore_service_webserver/catalog/_rest_tags_controller.py

Lines changed: 0 additions & 54 deletions
This file was deleted.

services/web/server/src/simcore_service_webserver/catalog/_service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828

2929
from ..rabbitmq import get_rabbitmq_rpc_client
3030
from . import _catalog_rest_client_service
31-
from ._units_service import can_connect, replace_service_input_outputs
32-
from .controller_rest_schemas import (
31+
from ._controller_rest_schemas import (
3332
CatalogRequestContext,
3433
ServiceInputGetFactory,
3534
ServiceOutputGetFactory,
3635
)
36+
from ._units_service import can_connect, replace_service_input_outputs
3737

3838
_logger = logging.getLogger(__name__)
3939

services/web/server/src/simcore_service_webserver/catalog/_units_service.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from models_library.services import BaseServiceIOModel, ServiceInput, ServiceOutput
44
from pint import PintError, UnitRegistry
55

6-
from .controller_rest_schemas import (
6+
from ._controller_rest_schemas import (
77
ServiceInputGetFactory,
88
ServiceOutputGetFactory,
99
get_unit_name,
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"""Defines the different exceptions that may arise in the catalog subpackage"""
2+
3+
from ..errors import WebServerBaseError
4+
5+
6+
class BaseCatalogError(WebServerBaseError):
7+
msg_template = "Unexpected error occured in catalog submodule"
8+
9+
def __init__(self, msg=None, **ctx):
10+
super().__init__(**ctx)
11+
if msg:
12+
self.msg_template = msg
13+
14+
def debug_message(self):
15+
# Override in subclass
16+
return f"{self.code}: {self}"
17+
18+
19+
class DefaultPricingUnitForServiceNotFoundError(BaseCatalogError):
20+
msg_template = "Default pricing unit not found for service key '{service_key}' and version '{service_version}'"
21+
22+
def __init__(self, *, service_key: str, service_version: str, **ctxs):
23+
super().__init__(**ctxs)
24+
self.service_key = service_key
25+
self.service_version = service_version

services/web/server/src/simcore_service_webserver/catalog/plugin.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from pint import UnitRegistry
77
from servicelib.aiohttp.application_setup import ModuleCategory, app_module_setup
88

9-
from . import _rest_controller, _rest_tags_controller
9+
from . import _controller_rest, _tags_controller_rest
1010

1111
_logger = logging.getLogger(__name__)
1212

@@ -22,11 +22,11 @@ def setup_catalog(app: web.Application):
2222
# ensures routes are names that corresponds to function names
2323
assert all( # nosec
2424
route_def.kwargs["name"] == route_def.handler.__name__ # type: ignore[attr-defined] # route_def is a RouteDef not an Abstract
25-
for route_def in _rest_controller.routes
25+
for route_def in _controller_rest.routes
2626
)
2727

28-
app.add_routes(_rest_controller.routes)
29-
app.add_routes(_rest_tags_controller.routes)
28+
app.add_routes(_controller_rest.routes)
29+
app.add_routes(_tags_controller_rest.routes)
3030

3131
# prepares units registry
3232
app[UnitRegistry.__name__] = UnitRegistry()

0 commit comments

Comments
 (0)