Skip to content

Commit 7cfa675

Browse files
committed
feat: keep deprecated POST subwallet remove endpoint
Retain POST /multitenancy/wallet/{wallet_id}/remove as a deprecated alias of DELETE /multitenancy/wallet/{wallet_id} to avoid a breaking change. Marks the old route deprecated in the OpenAPI/Swagger specs and docs. Signed-off-by: Emiliano Suñé <2395873+esune@users.noreply.github.com>
1 parent 34e1c59 commit 7cfa675

5 files changed

Lines changed: 112 additions & 0 deletions

File tree

acapy_agent/multitenant/admin/routes.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,23 @@ async def wallet_remove(request: web.BaseRequest):
677677
return web.json_response({})
678678

679679

680+
@docs(
681+
tags=["multitenancy"],
682+
summary="Remove a subwallet",
683+
deprecated=True,
684+
)
685+
@match_info_schema(WalletIdMatchInfoSchema())
686+
@request_schema(RemoveWalletRequestSchema)
687+
@response_schema(MultitenantModuleResponseSchema(), 200, description="")
688+
@admin_authentication
689+
async def wallet_remove_deprecated(request: web.BaseRequest):
690+
"""Deprecated alias for wallet_remove.
691+
692+
Use ``DELETE /multitenancy/wallet/{wallet_id}`` instead.
693+
"""
694+
return await wallet_remove(request)
695+
696+
680697
# MTODO: add wallet import route
681698
# MTODO: add wallet export route
682699
# MTODO: add rotate wallet key route
@@ -692,6 +709,7 @@ async def register(app: web.Application):
692709
web.put("/multitenancy/wallet/{wallet_id}", wallet_update),
693710
web.post("/multitenancy/wallet/{wallet_id}/token", wallet_create_token),
694711
web.delete("/multitenancy/wallet/{wallet_id}", wallet_remove),
712+
web.post("/multitenancy/wallet/{wallet_id}/remove", wallet_remove_deprecated),
695713
]
696714
)
697715

acapy_agent/multitenant/admin/tests/test_routes.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -833,6 +833,27 @@ async def test_wallet_remove_managed(self):
833833
mock_response.assert_called_once_with({})
834834
assert result == mock_response.return_value
835835

836+
async def test_wallet_remove_deprecated_delegates(self):
837+
self.request.has_body = False
838+
self.request.match_info = {"wallet_id": "dummy"}
839+
mock_multitenant_mgr = mock.AsyncMock(BaseMultitenantManager, autospec=True)
840+
mock_multitenant_mgr.remove_wallet = mock.CoroutineMock()
841+
self.profile.context.injector.bind_instance(
842+
BaseMultitenantManager, mock_multitenant_mgr
843+
)
844+
845+
with (
846+
mock.patch.object(test_module.web, "json_response") as mock_response,
847+
mock.patch.object(
848+
test_module.WalletRecord, "retrieve_by_id", mock.CoroutineMock()
849+
),
850+
):
851+
result = await test_module.wallet_remove_deprecated(self.request)
852+
853+
mock_multitenant_mgr.remove_wallet.assert_called_once_with("dummy", None)
854+
mock_response.assert_called_once_with({})
855+
assert result == mock_response.return_value
856+
836857
async def test_wallet_remove_unmanaged(self):
837858
self.request.match_info = {"wallet_id": "dummy"}
838859
self.request.json = mock.CoroutineMock(return_value={"wallet_key": "dummy_key"})

docs/features/Multitenancy.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,10 @@ curl -X DELETE "${ACAPY_ADMIN_URL}/multitenancy/wallet/{wallet_id}" \
379379
{}
380380
```
381381

382+
> The `POST /multitenancy/wallet/{wallet_id}/remove` endpoint is deprecated and
383+
> will be removed in a future release. Use `DELETE /multitenancy/wallet/{wallet_id}`
384+
> instead.
385+
382386
### Per tenant settings
383387

384388
To allow the configuring of ACA-Py startup parameters/environment variables at a tenant/subwallet level. [PR#2233](https://github.com/openwallet-foundation/acapy/pull/2233) will provide the ability to update the following subset of settings when creating or updating the subwallet:

open-api/openapi.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3970,6 +3970,45 @@
39703970
"x-codegen-request-body-name" : "body"
39713971
}
39723972
},
3973+
"/multitenancy/wallet/{wallet_id}/remove" : {
3974+
"post" : {
3975+
"deprecated" : true,
3976+
"parameters" : [ {
3977+
"description" : "Subwallet identifier",
3978+
"in" : "path",
3979+
"name" : "wallet_id",
3980+
"required" : true,
3981+
"schema" : {
3982+
"type" : "string"
3983+
}
3984+
} ],
3985+
"requestBody" : {
3986+
"content" : {
3987+
"*/*" : {
3988+
"schema" : {
3989+
"$ref" : "#/components/schemas/RemoveWalletRequest"
3990+
}
3991+
}
3992+
},
3993+
"required" : false
3994+
},
3995+
"responses" : {
3996+
"200" : {
3997+
"content" : {
3998+
"application/json" : {
3999+
"schema" : {
4000+
"$ref" : "#/components/schemas/MultitenantModuleResponse"
4001+
}
4002+
}
4003+
},
4004+
"description" : ""
4005+
}
4006+
},
4007+
"summary" : "Remove a subwallet",
4008+
"tags" : [ "multitenancy" ],
4009+
"x-codegen-request-body-name" : "body"
4010+
}
4011+
},
39734012
"/multitenancy/wallet/{wallet_id}/token" : {
39744013
"post" : {
39754014
"parameters" : [ {

open-api/swagger.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3273,6 +3273,36 @@
32733273
}
32743274
}
32753275
},
3276+
"/multitenancy/wallet/{wallet_id}/remove" : {
3277+
"post" : {
3278+
"tags" : [ "multitenancy" ],
3279+
"summary" : "Remove a subwallet",
3280+
"deprecated" : true,
3281+
"produces" : [ "application/json" ],
3282+
"parameters" : [ {
3283+
"in" : "body",
3284+
"name" : "body",
3285+
"required" : false,
3286+
"schema" : {
3287+
"$ref" : "#/definitions/RemoveWalletRequest"
3288+
}
3289+
}, {
3290+
"name" : "wallet_id",
3291+
"in" : "path",
3292+
"description" : "Subwallet identifier",
3293+
"required" : true,
3294+
"type" : "string"
3295+
} ],
3296+
"responses" : {
3297+
"200" : {
3298+
"description" : "",
3299+
"schema" : {
3300+
"$ref" : "#/definitions/MultitenantModuleResponse"
3301+
}
3302+
}
3303+
}
3304+
}
3305+
},
32763306
"/multitenancy/wallet/{wallet_id}/token" : {
32773307
"post" : {
32783308
"tags" : [ "multitenancy" ],

0 commit comments

Comments
 (0)