Skip to content

Commit cda9306

Browse files
committed
fix: Shows informative error on UI when file upload limit is reached
1 parent 996ac9c commit cda9306

File tree

5 files changed

+19
-8
lines changed

5 files changed

+19
-8
lines changed

packages/api/src/Domain/Http/FetchRequestHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ export class FetchRequestHandler implements RequestHandlerInterface {
134134
response.data.error = {
135135
message: ErrorMessage.RateLimited,
136136
}
137-
} else {
137+
} else if (!response.data.error.message) {
138138
response.data.error.message = ErrorMessage.RateLimited
139139
}
140140
}

packages/files/src/Domain/Api/FilesApiInterface.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export interface FilesApiInterface {
2626
encryptedBytes: Uint8Array,
2727
): Promise<boolean>
2828

29-
closeUploadSession(valetToken: string, ownershipType: FileOwnershipType): Promise<boolean>
29+
closeUploadSession(valetToken: string, ownershipType: FileOwnershipType): Promise<boolean | ClientDisplayableError>
3030

3131
downloadFile(params: DownloadFileParams): Promise<ClientDisplayableError | undefined>
3232

packages/services/src/Domain/Files/FileService.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,11 @@ export class FileService extends AbstractService implements FilesClientInterface
227227
vault && vault.isSharedVaultListing() ? 'shared-vault' : 'user',
228228
)
229229

230-
if (isErrorResponse(uploadSessionStarted) || !uploadSessionStarted.data.uploadId) {
230+
if (isErrorResponse(uploadSessionStarted)) {
231+
return ClientDisplayableError.FromNetworkError(uploadSessionStarted)
232+
}
233+
234+
if (!uploadSessionStarted.data.uploadId) {
231235
return new ClientDisplayableError('Could not start upload session')
232236
}
233237

@@ -259,6 +263,10 @@ export class FileService extends AbstractService implements FilesClientInterface
259263
operation.vault && operation.vault.isSharedVaultListing() ? 'shared-vault' : 'user',
260264
)
261265

266+
if (uploadSessionClosed instanceof ClientDisplayableError) {
267+
return uploadSessionClosed
268+
}
269+
262270
if (!uploadSessionClosed) {
263271
return new ClientDisplayableError('Could not close upload session')
264272
}

packages/snjs/lib/Services/Api/ApiService.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -821,7 +821,10 @@ export class LegacyApiService
821821
return response.data.success
822822
}
823823

824-
public async closeUploadSession(valetToken: string, ownershipType: FileOwnershipType): Promise<boolean> {
824+
public async closeUploadSession(
825+
valetToken: string,
826+
ownershipType: FileOwnershipType,
827+
): Promise<boolean | ClientDisplayableError> {
825828
const url = joinPaths(
826829
this.getFilesHost(),
827830
ownershipType === 'user' ? Paths.v1.closeUploadSession : Paths.v1.closeSharedVaultUploadSession,
@@ -835,7 +838,7 @@ export class LegacyApiService
835838
})
836839

837840
if (isErrorResponse(response)) {
838-
return false
841+
return ClientDisplayableError.FromNetworkError(response)
839842
}
840843

841844
return response.data.success

packages/web/src/javascripts/Controllers/FilesController.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -524,9 +524,9 @@ export class FilesController extends AbstractViewController<FilesControllerEvent
524524
if (operation instanceof ClientDisplayableError) {
525525
addToast({
526526
type: ToastType.Error,
527-
message: 'Unable to start upload session',
527+
message: operation.text,
528528
})
529-
throw new Error('Unable to start upload session')
529+
return undefined
530530
}
531531

532532
const initialProgress = operation.getProgress().percentComplete
@@ -595,7 +595,7 @@ export class FilesController extends AbstractViewController<FilesControllerEvent
595595
type: ToastType.Error,
596596
message: uploadedFile.text,
597597
})
598-
throw new Error(uploadedFile.text)
598+
return undefined
599599
}
600600

601601
if (onUploadFinish) {

0 commit comments

Comments
 (0)