Skip to content

Commit 4300c54

Browse files
author
Rasmus Welander
committed
Fix update recevied shared
1 parent 354a029 commit 4300c54

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

cs3client/share.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -275,37 +275,41 @@ def get_received_share(
275275
return res.share
276276

277277
def update_received_share(
278-
self, auth_token: tuple, received_share: cs3scr.ReceivedShare, state: str = "SHARE_STATE_ACCEPTED"
278+
self, auth_token: tuple, opaque_id: str, state: str = "SHARE_STATE_ACCEPTED"
279279
) -> cs3scr.ReceivedShare:
280280
"""
281281
Update the state of a received share (SHARE_STATE_ACCEPTED, SHARE_STATE_ACCEPTED, SHARE_STATE_REJECTED).
282282
283283
:param auth_token: tuple in the form ('x-access-token', <token>) (see auth.get_token/auth.check_token)
284-
:param recieved_share: ReceivedShare object.
284+
:param opaque_id: Opaque share id. (REQUIRED).
285285
:param state: Share state to update to, defaults to SHARE_STATE_ACCEPTED, (REQUIRED).
286286
:return: Updated ReceivedShare object.
287287
:raises: NotFoundException (Share not found)
288288
:raises: AuthenticationException (Operation not permitted)
289289
:raises: UnknownException (Unknown error)
290290
"""
291-
resource = Resource(
292-
opaque_id=received_share.share.resource_id.opaque_id,
293-
storage_id=received_share.share.resource_id.storage_id,
294-
)
295291
req = cs3scapi.UpdateReceivedShareRequest(
296292
share=cs3scr.ReceivedShare(
297-
share=received_share.share,
298-
state=cs3scr.ShareState.Value(state),
299-
mount_point=resource.ref,
293+
share=cs3scr.Share(
294+
id=cs3scr.ShareId(opaque_id=opaque_id),
295+
),
300296
),
301297
update_mask=field_masks.FieldMask(paths=["state"]),
302298
)
299+
300+
if state == "SHARE_STATE_ACCEPTED":
301+
req.share.state = cs3scr.SHARE_STATE_ACCEPTED
302+
elif state == "SHARE_STATE_PENDING":
303+
req.share.state = cs3scr.SHARE_STATE_PENDING
304+
elif state == "SHARE_STATE_REJECTED":
305+
req.share.state = cs3scr.SHARE_STATE_REJECTED
306+
303307
res = self._gateway.UpdateReceivedShare(request=req, metadata=[auth_token])
304308
self._status_code_handler.handle_errors(
305-
res.status, "update received share", f'opaque_id="{received_share.share.id.opaque_id}"'
309+
res.status, "update received share", f'opaque_id="{opaque_id}"'
306310
)
307311
self._log.debug(
308-
f'msg="Invoked UpdateReceivedShare" opaque_id="{received_share.share.id.opaque_id}" new_state="{state}" '
312+
f'msg="Invoked UpdateReceivedShare" opaque_id="{opaque_id}" new_state="{state}" '
309313
f'trace="{res.status.trace}"'
310314
)
311315
return res.share

tests/test_share.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,6 @@ def test_update_received_share(
276276
share_instance, status_code, status_message, expected_exception, expected_result # noqa: F811 (not a redefinition)
277277
):
278278
resource_id = cs3spr.ResourceId(storage_id="storage_id", opaque_id="opaque_id")
279-
share = cs3scr.Share(resource_id=resource_id)
280-
received_share = cs3scr.ReceivedShare(share=share)
281279

282280
mock_response = Mock()
283281
mock_response.status.code = status_code
@@ -289,9 +287,9 @@ def test_update_received_share(
289287
with patch.object(share_instance._gateway, "UpdateReceivedShare", return_value=mock_response):
290288
if expected_exception:
291289
with pytest.raises(expected_exception):
292-
share_instance.update_received_share(auth_token, received_share=received_share)
290+
share_instance.update_received_share(auth_token, received_share_id=resource_id.opaque_id, state="SHARE_STATE_ACCEPTED")
293291
else:
294-
result = share_instance.update_received_share(auth_token, received_share=received_share)
292+
result = share_instance.update_received_share(auth_token, received_share_id=resource_id.opaque_id, state="SHARE_STATE_ACCEPTED")
295293
assert result == expected_result
296294

297295

0 commit comments

Comments
 (0)