Skip to content

Commit 48c7c70

Browse files
openapi specs
1 parent 08d4f80 commit 48c7c70

File tree

12 files changed

+45
-67
lines changed

12 files changed

+45
-67
lines changed

packages/models-library/src/models_library/api_schemas_webserver/licensed_items.py

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
from datetime import datetime
2-
from typing import NamedTuple
2+
from typing import Any, NamedTuple
33

4-
from common_library.dict_tools import remap_keys
54
from models_library.licensed_items import (
65
VIP_DETAILS_EXAMPLE,
7-
LicensedItemDB,
86
LicensedItemID,
97
LicensedResourceType,
108
)
@@ -20,21 +18,21 @@
2018

2119
class LicensedItemRpcGet(BaseModel):
2220
licensed_item_id: LicensedItemID
23-
display_name: str
21+
licensed_resource_name: str
2422
licensed_resource_type: LicensedResourceType
23+
licensed_resource_data: dict[str, Any]
2524
pricing_plan_id: PricingPlanId
26-
licensed_resource_type_details: dict[str, Any]
2725
created_at: datetime
2826
modified_at: datetime
2927
model_config = ConfigDict(
3028
json_schema_extra={
3129
"examples": [
3230
{
3331
"licensed_item_id": "0362b88b-91f8-4b41-867c-35544ad1f7a1",
34-
"display_name": "best-model",
32+
"licensed_resource_name": "best-model",
3533
"licensed_resource_type": f"{LicensedResourceType.VIP_MODEL}",
34+
"licensed_resource_data": VIP_DETAILS_EXAMPLE,
3635
"pricing_plan_id": "15",
37-
"licensed_resource_type_details": VIP_DETAILS_EXAMPLE,
3836
"created_at": "2024-12-12 09:59:26.422140",
3937
"modified_at": "2024-12-12 09:59:26.422140",
4038
}
@@ -53,52 +51,30 @@ class LicensedItemRpcGetPage(NamedTuple):
5351

5452
class LicensedItemRestGet(OutputSchema):
5553
licensed_item_id: LicensedItemID
56-
display_name: str
54+
licensed_resource_name: str
5755
licensed_resource_type: LicensedResourceType
58-
pricing_plan_id: PricingPlanId
59-
licensed_resource_type_details: Annotated[
56+
licensed_resource_data: Annotated[
6057
dict[str, Any], AfterValidator(to_camel_recursive)
6158
]
59+
pricing_plan_id: PricingPlanId
6260
created_at: datetime
6361
modified_at: datetime
6462
model_config = ConfigDict(
6563
json_schema_extra={
6664
"examples": [
6765
{
6866
"licensed_item_id": "0362b88b-91f8-4b41-867c-35544ad1f7a1",
69-
"display_name": "best-model",
67+
"licensed_resource_name": "best-model",
7068
"licensed_resource_type": f"{LicensedResourceType.VIP_MODEL}",
69+
"licensed_resource_data": VIP_DETAILS_EXAMPLE,
7170
"pricing_plan_id": "15",
72-
"licensed_resource_type_details": VIP_DETAILS_EXAMPLE,
7371
"created_at": "2024-12-12 09:59:26.422140",
7472
"modified_at": "2024-12-12 09:59:26.422140",
7573
}
7674
]
7775
}
7876
)
7977

80-
@classmethod
81-
def from_domain_model(cls, licensed_item_db: LicensedItemDB) -> Self:
82-
return cls.model_validate(
83-
remap_keys(
84-
licensed_item_db.model_dump(
85-
include={
86-
"licensed_item_id",
87-
"licensed_resource_name",
88-
"license_key",
89-
"pricing_plan_id",
90-
"created",
91-
"modified",
92-
}
93-
),
94-
{
95-
"licensed_resource_name": "name",
96-
"created": "created_at",
97-
"modified": "modified_at",
98-
},
99-
)
100-
)
101-
10278

10379
class LicensedItemRestGetPage(NamedTuple):
10480
items: list[LicensedItemRestGet]

services/api-server/src/simcore_service_api_server/models/schemas/model_adapter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,10 @@ class ServicePricingPlanGetLegacy(BaseModel):
137137

138138
class LicensedItemGet(BaseModel):
139139
licensed_item_id: LicensedItemID
140-
display_name: Annotated[str, Field(alias="display_name")]
140+
licensed_resource_name: str
141141
licensed_resource_type: LicensedResourceType
142+
licensed_resource_data: dict[str, Any]
142143
pricing_plan_id: PricingPlanId
143-
licensed_resource_type_details: dict[str, Any]
144144
created_at: datetime
145145
modified_at: datetime
146146
model_config = ConfigDict(

services/api-server/src/simcore_service_api_server/services_rpc/wb_api_server.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,10 @@ def _create_licensed_items_get_page(
5858
[
5959
LicensedItemGet(
6060
licensed_item_id=elm.licensed_item_id,
61-
display_name=elm.display_name,
61+
licensed_resource_name=elm.licensed_resource_name,
6262
licensed_resource_type=elm.licensed_resource_type,
63+
licensed_resource_data=elm.licensed_resource_data,
6364
pricing_plan_id=elm.pricing_plan_id,
64-
licensed_resource_type_details=elm.licensed_resource_type_details,
6565
created_at=elm.created_at,
6666
modified_at=elm.modified_at,
6767
)

services/web/server/src/simcore_service_webserver/api/v0/openapi.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10695,19 +10695,19 @@ components:
1069510695
type: string
1069610696
format: uuid
1069710697
title: Licenseditemid
10698-
displayName:
10698+
licensedResourceName:
1069910699
type: string
10700-
title: Displayname
10700+
title: Licensedresourcename
1070110701
licensedResourceType:
1070210702
$ref: '#/components/schemas/LicensedResourceType'
10703+
licensedResourceData:
10704+
type: object
10705+
title: Licensedresourcedata
1070310706
pricingPlanId:
1070410707
type: integer
1070510708
exclusiveMinimum: true
1070610709
title: Pricingplanid
1070710710
minimum: 0
10708-
licensedResourceTypeDetails:
10709-
type: object
10710-
title: Licensedresourcetypedetails
1071110711
createdAt:
1071210712
type: string
1071310713
format: date-time
@@ -10719,10 +10719,10 @@ components:
1071910719
type: object
1072010720
required:
1072110721
- licensedItemId
10722-
- displayName
10722+
- licensedResourceName
1072310723
- licensedResourceType
10724+
- licensedResourceData
1072410725
- pricingPlanId
10725-
- licensedResourceTypeDetails
1072610726
- createdAt
1072710727
- modifiedAt
1072810728
title: LicensedItemRestGet

services/web/server/src/simcore_service_webserver/licenses/_common/models.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,21 @@
3131

3232
class LicensedItem(BaseModel):
3333
licensed_item_id: LicensedItemID
34-
display_name: str
34+
licensed_resource_name: str
3535
licensed_resource_type: LicensedResourceType
36+
licensed_resource_data: dict[str, Any]
3637
pricing_plan_id: PricingPlanId
37-
licensed_resource_type_details: dict[str, Any]
3838
created_at: datetime
3939
modified_at: datetime
4040
model_config = ConfigDict(
4141
json_schema_extra={
4242
"examples": [
4343
{
4444
"licensed_item_id": "0362b88b-91f8-4b41-867c-35544ad1f7a1",
45-
"display_name": "best-model",
45+
"licensed_resource_name": "best-model",
4646
"licensed_resource_type": f"{LicensedResourceType.VIP_MODEL}",
47+
"licensed_resource_data": VIP_DETAILS_EXAMPLE,
4748
"pricing_plan_id": "15",
48-
"licensed_resource_type_details": VIP_DETAILS_EXAMPLE,
4949
"created_at": "2024-12-12 09:59:26.422140",
5050
"modified_at": "2024-12-12 09:59:26.422140",
5151
}

services/web/server/src/simcore_service_webserver/licenses/_licensed_items_repository.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ async def create(
4343
*,
4444
licensed_resource_name: str,
4545
licensed_resource_type: LicensedResourceType,
46+
licensed_resource_data: dict | None,
4647
product_name: ProductName | None,
4748
pricing_plan_id: PricingPlanId | None,
4849
) -> LicensedItemDB:
@@ -54,7 +55,7 @@ async def create(
5455
licensed_resource_type=licensed_resource_type,
5556
pricing_plan_id=pricing_plan_id,
5657
product_name=product_name,
57-
licensed_resource_type_details=licensed_resource_type_details,
58+
licensed_resource_data=licensed_resource_data,
5859
created=func.now(),
5960
modified=func.now(),
6061
)

services/web/server/src/simcore_service_webserver/licenses/_licensed_items_rest.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ async def list_licensed_items(request: web.Request):
6161
items=[
6262
LicensedItemRestGet.model_construct(
6363
licensed_item_id=licensed_item.licensed_item_id,
64-
display_name=licensed_item.display_name,
64+
licensed_resource_name=licensed_item.licensed_resource_name,
6565
licensed_resource_type=licensed_item.licensed_resource_type,
66+
licensed_resource_data=licensed_item.licensed_resource_data,
6667
pricing_plan_id=licensed_item.pricing_plan_id,
67-
licensed_resource_type_details=licensed_item.licensed_resource_type_details,
6868
created_at=licensed_item.created_at,
6969
modified_at=licensed_item.modified_at,
7070
)
@@ -105,10 +105,10 @@ async def get_licensed_item(request: web.Request):
105105
)
106106
licensed_item_get = LicensedItemRestGet.model_construct(
107107
licensed_item_id=licensed_item.licensed_item_id,
108-
display_name=licensed_item.display_name,
108+
licensed_resource_name=licensed_item.licensed_resource_name,
109109
licensed_resource_type=licensed_item.licensed_resource_type,
110110
pricing_plan_id=licensed_item.pricing_plan_id,
111-
licensed_resource_type_details=licensed_item.licensed_resource_type_details,
111+
licensed_resource_data=licensed_item.licensed_resource_data,
112112
created_at=licensed_item.created_at,
113113
modified_at=licensed_item.modified_at,
114114
)

services/web/server/src/simcore_service_webserver/licenses/_licensed_items_service.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ async def get_licensed_item(
4040
)
4141
return LicensedItem.model_construct(
4242
licensed_item_id=licensed_item_db.licensed_item_id,
43-
display_name=licensed_item_db.display_name,
43+
licensed_resource_name=licensed_item_db.licensed_resource_name,
4444
licensed_resource_type=licensed_item_db.licensed_resource_type,
45+
licensed_resource_data=licensed_item_db.licensed_resource_data,
4546
pricing_plan_id=licensed_item_db.pricing_plan_id,
46-
licensed_resource_type_details=licensed_item_db.licensed_resource_type_details,
4747
created_at=licensed_item_db.created,
4848
modified_at=licensed_item_db.modified,
4949
)
@@ -64,10 +64,10 @@ async def list_licensed_items(
6464
items=[
6565
LicensedItem.model_construct(
6666
licensed_item_id=licensed_item_db.licensed_item_id,
67-
display_name=licensed_item_db.display_name,
67+
licensed_resource_name=licensed_item_db.licensed_resource_name,
6868
licensed_resource_type=licensed_item_db.licensed_resource_type,
69+
licensed_resource_data=licensed_item_db.licensed_resource_data,
6970
pricing_plan_id=licensed_item_db.pricing_plan_id,
70-
licensed_resource_type_details=licensed_item_db.licensed_resource_type_details,
7171
created_at=licensed_item_db.created,
7272
modified_at=licensed_item_db.modified,
7373
)

services/web/server/src/simcore_service_webserver/licenses/_rpc.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,18 +47,18 @@ async def get_licensed_items(
4747
product_name=product_name,
4848
offset=offset,
4949
limit=limit,
50-
order_by=OrderBy(field=IDStr("display_name")),
50+
order_by=OrderBy(field=IDStr("licensed_resource_name")),
5151
)
5252
)
5353

5454
licensed_item_get_page: LicensedItemRpcGetPage = LicensedItemRpcGetPage(
5555
items=[
5656
LicensedItemRpcGet.model_construct(
5757
licensed_item_id=licensed_item.licensed_item_id,
58-
display_name=licensed_item.display_name,
58+
licensed_resource_name=licensed_item.licensed_resource_name,
5959
licensed_resource_type=licensed_item.licensed_resource_type,
60+
licensed_resource_data=licensed_item.licensed_resource_data,
6061
pricing_plan_id=licensed_item.pricing_plan_id,
61-
licensed_resource_type_details=licensed_item.licensed_resource_type_details,
6262
created_at=licensed_item.created_at,
6363
modified_at=licensed_item.modified_at,
6464
)

services/web/server/tests/unit/with_dbs/04/licenses/test_licensed_items_repository.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ async def test_licensed_items_db_crud(
5050
licensed_resource_name="Model A",
5151
licensed_resource_type=LicensedResourceType.VIP_MODEL,
5252
pricing_plan_id=pricing_plan_id,
53-
licensed_resource_type_details=VIP_DETAILS_EXAMPLE,
53+
licensed_resource_data=VIP_DETAILS_EXAMPLE,
5454
)
5555
_licensed_item_id = licensed_item_db.licensed_item_id
5656

@@ -68,8 +68,8 @@ async def test_licensed_items_db_crud(
6868
licensed_item_id=_licensed_item_id,
6969
product_name=osparc_product_name,
7070
)
71-
assert licensed_item_db.licensed_resource_display_name == "Model A"
72-
assert isinstance(licensed_item_db.licensed_resource_type_details, dict)
71+
assert licensed_item_db.licensed_resource_name == "Model A"
72+
assert isinstance(licensed_item_db.licensed_resource_data, dict)
7373

7474
await _licensed_items_repository.update(
7575
client.app,
@@ -116,6 +116,7 @@ async def test_licensed_items_db_trash(
116116
product_name=osparc_product_name,
117117
licensed_resource_name=name,
118118
licensed_resource_type=LicensedResourceType.VIP_MODEL,
119+
licensed_resource_data=None,
119120
pricing_plan_id=pricing_plan_id,
120121
)
121122
licensed_item_ids.append(licensed_item_db.licensed_item_id)

0 commit comments

Comments
 (0)