From 675da5cdb210bccd7e2a6eb3ad2098f1f97e4f1d Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Thu, 22 Apr 2021 11:04:29 +1000 Subject: [PATCH] add preview of room image downloading --- ts/components/session/ActionsPanel.tsx | 21 +++++------------ ts/opengroup/opengroupV2/OpenGroupAPIV2.ts | 26 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/ts/components/session/ActionsPanel.tsx b/ts/components/session/ActionsPanel.tsx index cbc555ce8..677c2af5a 100644 --- a/ts/components/session/ActionsPanel.tsx +++ b/ts/components/session/ActionsPanel.tsx @@ -31,15 +31,7 @@ import { joinOpenGroupV2, parseOpenGroupV2, } from '../../opengroup/opengroupV2/JoinOpenGroupV2'; -import { - getAuthToken, - getMessages, - getModerators, - postMessage, - uploadFileOpenGroupV2, -} from '../../opengroup/opengroupV2/OpenGroupAPIV2'; -import { OpenGroupMessageV2 } from '../../opengroup/opengroupV2/OpenGroupMessageV2'; -// tslint:disable-next-line: no-import-side-effect no-submodule-imports +import { downloadPreviewOpenGroupV2 } from '../../opengroup/opengroupV2/OpenGroupAPIV2'; export enum SectionType { Profile, @@ -207,13 +199,10 @@ export const ActionsPanel = () => { // serverUrl: parsedRoom.serverUrl, // roomId: parsedRoom.roomId, // }); - const fileID = await uploadFileOpenGroupV2( - new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9]), - { - serverUrl: parsedRoom.serverUrl, - roomId: parsedRoom.roomId, - } - ); + // const fileID = await downloadPreviewOpenGroupV2({ + // serverUrl: parsedRoom.serverUrl, + // roomId: parsedRoom.roomId, + // }); }, 6000); } }, []); diff --git a/ts/opengroup/opengroupV2/OpenGroupAPIV2.ts b/ts/opengroup/opengroupV2/OpenGroupAPIV2.ts index ee4c52b51..b18bf01e1 100644 --- a/ts/opengroup/opengroupV2/OpenGroupAPIV2.ts +++ b/ts/opengroup/opengroupV2/OpenGroupAPIV2.ts @@ -550,6 +550,32 @@ export const downloadFileOpenGroupV2 = async ( return new Uint8Array(fromBase64ToArrayBuffer(base64Data)); }; +export const downloadPreviewOpenGroupV2 = async ( + roomInfos: OpenGroupRequestCommonType +): Promise => { + const request: OpenGroupV2Request = { + method: 'GET', + room: roomInfos.roomId, + server: roomInfos.serverUrl, + isAuthRequired: false, + endpoint: `rooms/${roomInfos.roomId}/image`, + }; + + const result = await sendOpenGroupV2Request(request); + const statusCode = parseStatusCodeFromOnionRequest(result); + if (statusCode !== 200) { + return null; + } + + // we should probably change the logic of sendOnionRequest to not have all those levels + const base64Data = (result as any)?.result?.result as string | undefined; + + if (!base64Data) { + return null; + } + return new Uint8Array(fromBase64ToArrayBuffer(base64Data)); +}; + /** * Returns the id on which the file is saved, or null */