MCPcopy Create free account
hub / github.com/CommE2E/comm / uploadFile

Method uploadFile

native/input/input-state-container.react.js:755–1151  ·  view source on GitHub ↗
(
    localMessageID: string,
    uploadFileInput: UploadFileInput,
    threadInfo: ThreadInfo,
  )

Source from the content-addressed store, hash-verified

753 }
754
755 async uploadFile(
756 localMessageID: string,
757 uploadFileInput: UploadFileInput,
758 threadInfo: ThreadInfo,
759 ): Promise<?string> {
760 const { ids, selection } = uploadFileInput;
761 const { localMediaID, localThumbnailID } = ids;
762 const start = selection.sendTime;
763 const steps: Array<MediaMissionStep> = [selection];
764 let encryptionSteps: $ReadOnlyArray<MediaMissionStep> = [];
765 let serverID;
766 let userTime;
767 let errorMessage;
768 let reportPromise: ?Promise<$ReadOnlyArray<MediaMissionStep>>;
769 const fileURIsToDispose = [];
770
771 const onUploadFinished = async (result: MediaMissionResult) => {
772 if (!this.props.mediaReportsEnabled) {
773 return errorMessage;
774 }
775 if (reportPromise) {
776 const finalSteps = await reportPromise;
777 steps.push(...finalSteps);
778 steps.push(...encryptionSteps);
779 }
780 const totalTime = Date.now() - start;
781 userTime = userTime ? userTime : totalTime;
782 this.queueMediaMissionReport(
783 { localID: localMediaID, localMessageID, serverID },
784 { steps, result, totalTime, userTime },
785 );
786 return errorMessage;
787 };
788 const onUploadFailed = (message: string) => {
789 errorMessage = message;
790 this.handleUploadFailure(localMessageID, localMediaID, localThumbnailID);
791 userTime = Date.now() - start;
792 };
793
794 const onTranscodingProgress = (percent: number) => {
795 this.setProgress(localMessageID, localMediaID, 'transcoding', percent);
796 };
797
798 let processedMedia;
799 const processingStart = Date.now();
800 try {
801 const processMediaReturn = processMedia(selection, {
802 hasWiFi: this.props.hasWiFi,
803 finalFileHeaderCheck: this.props.staffCanSee,
804 onTranscodingProgress,
805 });
806 reportPromise = processMediaReturn.reportPromise;
807 const processResult = await processMediaReturn.resultPromise;
808 if (!processResult.success) {
809 const message =
810 processResult.reason === 'video_too_long'
811 ? `can't do vids longer than ${videoDurationLimit}min`
812 : 'processing failed';

Callers 1

uploadFilesMethod · 0.95

Calls 9

setProgressMethod · 0.95
processMediaFunction · 0.90
getMessageForExceptionFunction · 0.90
encryptMediaFunction · 0.90
replaceExtensionFunction · 0.90
disposeTempFileFunction · 0.90
pushMethod · 0.80
forEachMethod · 0.65

Tested by

no test coverage detected