Skip to content

Commit cddb7cc

Browse files
fix
1 parent 45be582 commit cddb7cc

File tree

2 files changed

+40
-71
lines changed

2 files changed

+40
-71
lines changed

services/resource-usage-tracker/src/simcore_service_resource_usage_tracker/services/modules/db/credit_transactions_db.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,10 @@ async def batch_update_credit_transaction_status_for_in_debt_transactions(
167167
result = await conn.execute(update_stmt)
168168
if result.rowcount:
169169
_logger.info(
170-
f"Wallet {wallet_id} and project {project_id} transactions in DEBT were changed to BILLED. Num. of transaction {result.rowcount}"
170+
"Wallet %s and project %s transactions in DEBT were changed to BILLED. Num. of transaction %s",
171+
wallet_id,
172+
project_id,
173+
result.rowcount,
171174
)
172175

173176

services/web/server/src/simcore_service_webserver/resource_usage/_pricing_plans_admin_rest.py

Lines changed: 36 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
import functools
22

33
from aiohttp import web
4+
from models_library.api_schemas_resource_usage_tracker.pricing_plans import (
5+
PricingPlanGet,
6+
)
47
from models_library.api_schemas_webserver.resource_usage import (
58
ConnectServiceToPricingPlanBodyParams,
69
CreatePricingPlanBodyParams,
@@ -118,27 +121,15 @@ async def list_pricing_plans_for_admin_user(request: web.Request):
118121
)
119122

120123

121-
@routes.get(
122-
f"/{VTAG}/admin/pricing-plans/{{pricing_plan_id}}",
123-
name="get_pricing_plan_for_admin_user",
124-
)
125-
@login_required
126-
@permission_required("resource-usage.write")
127-
@_handle_pricing_plan_admin_exceptions
128-
async def get_pricing_plan_for_admin_user(request: web.Request):
129-
req_ctx = RequestContext.model_validate(request)
130-
path_params = parse_request_path_parameters_as(PricingPlanGetPathParams, request)
131-
132-
pricing_plan_get = await pricing_plans_admin_service.get_pricing_plan(
133-
app=request.app,
134-
product_name=req_ctx.product_name,
135-
pricing_plan_id=path_params.pricing_plan_id,
136-
)
124+
def pricing_plan_get_to_admin(pricing_plan_get: PricingPlanGet) -> PricingPlanAdminGet:
125+
"""
126+
Convert a PricingPlanGet object into a PricingPlanAdminGet object.
127+
"""
137128
if pricing_plan_get.pricing_units is None:
138129
msg = "Pricing plan units should not be None"
139130
raise ValueError(msg)
140131

141-
webserver_admin_pricing_plan_get = PricingPlanAdminGet(
132+
return PricingPlanAdminGet(
142133
pricing_plan_id=pricing_plan_get.pricing_plan_id,
143134
display_name=pricing_plan_get.display_name,
144135
description=pricing_plan_get.description,
@@ -147,18 +138,37 @@ async def get_pricing_plan_for_admin_user(request: web.Request):
147138
pricing_plan_key=pricing_plan_get.pricing_plan_key,
148139
pricing_units=[
149140
PricingUnitAdminGet(
150-
pricing_unit_id=pricing_unit.pricing_unit_id,
151-
unit_name=pricing_unit.unit_name,
152-
unit_extra_info=pricing_unit.unit_extra_info,
153-
specific_info=pricing_unit.specific_info,
154-
current_cost_per_unit=pricing_unit.current_cost_per_unit,
155-
default=pricing_unit.default,
141+
pricing_unit_id=pu.pricing_unit_id,
142+
unit_name=pu.unit_name,
143+
unit_extra_info=pu.unit_extra_info,
144+
specific_info=pu.specific_info,
145+
current_cost_per_unit=pu.current_cost_per_unit,
146+
default=pu.default,
156147
)
157-
for pricing_unit in pricing_plan_get.pricing_units
148+
for pu in pricing_plan_get.pricing_units
158149
],
159150
is_active=pricing_plan_get.is_active,
160151
)
161152

153+
154+
@routes.get(
155+
f"/{VTAG}/admin/pricing-plans/{{pricing_plan_id}}",
156+
name="get_pricing_plan_for_admin_user",
157+
)
158+
@login_required
159+
@permission_required("resource-usage.write")
160+
@_handle_pricing_plan_admin_exceptions
161+
async def get_pricing_plan_for_admin_user(request: web.Request):
162+
req_ctx = RequestContext.model_validate(request)
163+
path_params = parse_request_path_parameters_as(PricingPlanGetPathParams, request)
164+
165+
pricing_plan_get = await pricing_plans_admin_service.get_pricing_plan(
166+
app=request.app,
167+
product_name=req_ctx.product_name,
168+
pricing_plan_id=path_params.pricing_plan_id,
169+
)
170+
webserver_admin_pricing_plan_get = pricing_plan_get_to_admin(pricing_plan_get)
171+
162172
return envelope_json_response(webserver_admin_pricing_plan_get, web.HTTPOk)
163173

164174

@@ -184,29 +194,7 @@ async def create_pricing_plan(request: web.Request):
184194
app=request.app,
185195
data=_data,
186196
)
187-
if pricing_plan_get.pricing_units is None:
188-
raise ValueError
189-
190-
webserver_admin_pricing_plan_get = PricingPlanAdminGet(
191-
pricing_plan_id=pricing_plan_get.pricing_plan_id,
192-
display_name=pricing_plan_get.display_name,
193-
description=pricing_plan_get.description,
194-
classification=pricing_plan_get.classification,
195-
created_at=pricing_plan_get.created_at,
196-
pricing_plan_key=pricing_plan_get.pricing_plan_key,
197-
pricing_units=[
198-
PricingUnitAdminGet(
199-
pricing_unit_id=pricing_unit.pricing_unit_id,
200-
unit_name=pricing_unit.unit_name,
201-
unit_extra_info=pricing_unit.unit_extra_info,
202-
specific_info=pricing_unit.specific_info,
203-
current_cost_per_unit=pricing_unit.current_cost_per_unit,
204-
default=pricing_unit.default,
205-
)
206-
for pricing_unit in pricing_plan_get.pricing_units
207-
],
208-
is_active=pricing_plan_get.is_active,
209-
)
197+
webserver_admin_pricing_plan_get = pricing_plan_get_to_admin(pricing_plan_get)
210198

211199
return envelope_json_response(webserver_admin_pricing_plan_get, web.HTTPOk)
212200

@@ -234,29 +222,7 @@ async def update_pricing_plan(request: web.Request):
234222
product_name=req_ctx.product_name,
235223
data=_data,
236224
)
237-
if pricing_plan_get.pricing_units is None:
238-
raise ValueError
239-
240-
webserver_admin_pricing_plan_get = PricingPlanAdminGet(
241-
pricing_plan_id=pricing_plan_get.pricing_plan_id,
242-
display_name=pricing_plan_get.display_name,
243-
description=pricing_plan_get.description,
244-
classification=pricing_plan_get.classification,
245-
created_at=pricing_plan_get.created_at,
246-
pricing_plan_key=pricing_plan_get.pricing_plan_key,
247-
pricing_units=[
248-
PricingUnitAdminGet(
249-
pricing_unit_id=pricing_unit.pricing_unit_id,
250-
unit_name=pricing_unit.unit_name,
251-
unit_extra_info=pricing_unit.unit_extra_info,
252-
specific_info=pricing_unit.specific_info,
253-
current_cost_per_unit=pricing_unit.current_cost_per_unit,
254-
default=pricing_unit.default,
255-
)
256-
for pricing_unit in pricing_plan_get.pricing_units
257-
],
258-
is_active=pricing_plan_get.is_active,
259-
)
225+
webserver_admin_pricing_plan_get = pricing_plan_get_to_admin(pricing_plan_get)
260226

261227
return envelope_json_response(webserver_admin_pricing_plan_get, web.HTTPOk)
262228

0 commit comments

Comments
 (0)