Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 8 additions & 11 deletions components/renku_data_services/connected_services/blueprints.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
from renku_data_services.base_api.auth import authenticate, only_admins, only_authenticated
from renku_data_services.base_api.blueprint import BlueprintFactoryResponse, CustomBlueprint
from renku_data_services.base_api.misc import validate_query
from renku_data_services.base_models.validation import validated_json
from renku_data_services.connected_services import apispec
from renku_data_services.connected_services.apispec_base import AuthorizeParams, CallbackParams
from renku_data_services.connected_services.db import ConnectedServicesRepository
Expand All @@ -30,9 +31,7 @@ def get_all(self) -> BlueprintFactoryResponse:
@authenticate(self.authenticator)
async def _get_all(_: Request, user: base_models.APIUser) -> JSONResponse:
clients = await self.connected_services_repo.get_oauth2_clients(user=user)
return json(
[apispec.Provider.model_validate(c).model_dump(exclude_none=True, mode="json") for c in clients]
)
return validated_json(apispec.ProviderList, clients)

return "/oauth2/providers", ["GET"], _get_all

Expand All @@ -42,7 +41,7 @@ def get_one(self) -> BlueprintFactoryResponse:
@authenticate(self.authenticator)
async def _get_one(_: Request, user: base_models.APIUser, provider_id: str) -> JSONResponse:
client = await self.connected_services_repo.get_oauth2_client(provider_id=provider_id, user=user)
return json(apispec.Provider.model_validate(client).model_dump(exclude_none=True, mode="json"))
return validated_json(apispec.Provider, client)

return "/oauth2/providers/<provider_id>", ["GET"], _get_one

Expand All @@ -54,7 +53,7 @@ def post(self) -> BlueprintFactoryResponse:
@validate(json=apispec.ProviderPost)
async def _post(_: Request, user: base_models.APIUser, body: apispec.ProviderPost) -> JSONResponse:
client = await self.connected_services_repo.insert_oauth2_client(user=user, new_client=body)
return json(apispec.Provider.model_validate(client).model_dump(exclude_none=True, mode="json"), 201)
return validated_json(apispec.Provider, client, 201)

return "/oauth2/providers", ["POST"], _post

Expand All @@ -71,7 +70,7 @@ async def _patch(
client = await self.connected_services_repo.update_oauth2_client(
user=user, provider_id=provider_id, **body_dict
)
return json(apispec.Provider.model_validate(client).model_dump(exclude_none=True, mode="json"))
return validated_json(apispec.Provider, client)

return "/oauth2/providers/<provider_id>", ["PATCH"], _patch

Expand Down Expand Up @@ -143,9 +142,7 @@ def get_all(self) -> BlueprintFactoryResponse:
@authenticate(self.authenticator)
async def _get_all(_: Request, user: base_models.APIUser) -> JSONResponse:
connections = await self.connected_services_repo.get_oauth2_connections(user=user)
return json(
[apispec.Connection.model_validate(c).model_dump(exclude_none=True, mode="json") for c in connections]
)
return validated_json(apispec.ConnectionList, connections)

return "/oauth2/connections", ["GET"], _get_all

Expand All @@ -157,7 +154,7 @@ async def _get_one(_: Request, user: base_models.APIUser, connection_id: str) ->
connection = await self.connected_services_repo.get_oauth2_connection(
connection_id=connection_id, user=user
)
return json(apispec.Connection.model_validate(connection).model_dump(exclude_none=True, mode="json"))
return validated_json(apispec.Connection, connection)

return "/oauth2/connections/<connection_id>", ["GET"], _get_one

Expand All @@ -169,7 +166,7 @@ async def _get_account(_: Request, user: base_models.APIUser, connection_id: str
account = await self.connected_services_repo.get_oauth2_connected_account(
connection_id=connection_id, user=user
)
return json(apispec.ConnectedAccount.model_validate(account).model_dump(exclude_none=True, mode="json"))
return validated_json(apispec.ConnectedAccount, account)

return "/oauth2/connections/<connection_id>/account", ["GET"], _get_account

Expand Down