getRoomByShareToken method

Future<DynamiteResponse<FilesIntegrationGetRoomByShareTokenResponseApplicationJson, void>> getRoomByShareToken({
  1. required String shareToken,
  2. FilesIntegrationGetRoomByShareTokenApiVersion? apiVersion,
  3. bool? oCSAPIRequest,
})

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 to true.

Status codes:

  • 200: Room token and user info returned
  • 400: Rooms not allowed for shares
  • 404: Share not found

See:

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);
}