getRoomByShareToken method
Returns the token of the room associated to the file of the given share token.
This is the counterpart of self::getRoomByFileId() for share tokens instead of file ids, although both return the same room token if the given file id and share token refer to the same file. If there is no room associated to the file id of the given share token a new room is created; the new room is a public room associated with a "file" object with the file id of the given share token. Unlike normal rooms in which the owner is the user that created the room these are special rooms without owner (although self joined users with direct access to the file become persistent participants automatically when they join until they explicitly leave or no longer have access to the file). In any case, to create or even get the token of the room, the file must be publicly shared (like a link share, for example); an error is returned otherwise. Besides the token of the room this also returns the current user ID and display name, if any; this is needed by the Talk sidebar to know the actual current user, as the public share page uses the incognito mode and thus logged-in users as seen as guests.
Returns a Future containing a DynamiteResponse
with the status code, deserialized body and headers.
Throws a DynamiteApiException
if the API call does not return an expected status code.
Parameters:
apiVersion
Defaults to"v1"
.shareToken
Token of the file share.oCSAPIRequest
Required to be true for the API request to pass. Defaults totrue
.
Status codes:
- 200: Room token and user info returned
- 400: Rooms not allowed for shares
- 404: Share not found
See:
- $getRoomByShareToken_Request for the request send by this method.
- $getRoomByShareToken_Serializer for a converter to parse the
Response
from an executed request.
Implementation
Future<_i1.DynamiteResponse<FilesIntegrationGetRoomByShareTokenResponseApplicationJson, void>> getRoomByShareToken({
required String shareToken,
FilesIntegrationGetRoomByShareTokenApiVersion? apiVersion,
bool? oCSAPIRequest,
}) async {
final _request = $getRoomByShareToken_Request(
shareToken: shareToken,
apiVersion: apiVersion,
oCSAPIRequest: oCSAPIRequest,
);
final _streamedResponse = await _rootClient.httpClient.send(_request);
final _response = await _i3.Response.fromStream(_streamedResponse);
final _serializer = $getRoomByShareToken_Serializer();
return _i1.ResponseConverter<FilesIntegrationGetRoomByShareTokenResponseApplicationJson, void>(_serializer)
.convert(_response);
}