Skip to content

Commit 2a77680

Browse files
committed
fix: better error message
1 parent b2c9c50 commit 2a77680

File tree

7 files changed

+23
-17
lines changed

7 files changed

+23
-17
lines changed

src/common/data/table-data/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export { TableDataClient, isErrorResponse, ErrorResponse } from './table-data-client/table-data-client';
1+
export { TableDataClient, isSuccessResponse, isErrorResponse, ErrorResponse } from './table-data-client/table-data-client';
22
export { TableDataRequest } from './table-data-client/table-data-request';
33
export { TableDataResponse } from './table-data-client/table-data-response';
44
export { ColumnSortOrder } from './table-data-form-data-builder/column-sort-order';

src/common/data/table-data/table-data-client/table-data-client.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ describe('TableDataClient', () => {
7676
sortOrder,
7777
});
7878
if (isErrorResponse(response)) {
79-
throw new Error(response.message);
79+
throw new Error((await response.json()).message);
8080
}
8181
result = await response.json();
8282
});

src/common/data/table-data/table-data-client/table-data-client.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export class TableDataClient {
88
async postGetData<T, U = Record<string, unknown> | undefined>(
99
request: TableDataRequest,
1010
formParts: Record<string, string> = {}
11-
): Promise<BugSplatResponse<TableDataResponse<T, U>> | ErrorResponse> {
11+
): Promise<BugSplatResponse<TableDataResponse<T, U>> | BugSplatResponse<ErrorResponse>> {
1212
const factory = () => this._apiClient.createFormData();
1313
const formData = new TableDataFormDataBuilder(factory, formParts)
1414
.withDatabase(request.database)
@@ -32,7 +32,7 @@ export class TableDataClient {
3232

3333
async getData<T, U = Record<string, unknown> | undefined>(
3434
request: TableDataRequest
35-
): Promise<BugSplatResponse<TableDataResponse<T, U>> | ErrorResponse> {
35+
): Promise<BugSplatResponse<TableDataResponse<T, U>> | BugSplatResponse<ErrorResponse>> {
3636
const factory = () => this._apiClient.createFormData();
3737
const formData = new TableDataFormDataBuilder(factory)
3838
.withDatabase(request.database)
@@ -56,14 +56,14 @@ export class TableDataClient {
5656
private async makeRequest<T, U = unknown>(
5757
url: string,
5858
init: RequestInit
59-
): Promise<BugSplatResponse<TableDataResponse<T, U>> | ErrorResponse> {
60-
const response = await this._apiClient.fetch<TableDataResponse<T, U>>(url, init);
59+
): Promise<BugSplatResponse<TableDataResponse<T, U>> | BugSplatResponse<ErrorResponse>> {
60+
const response = await this._apiClient.fetch<TableDataResponse<T, U> | ErrorResponse>(url, init);
6161

62-
if (isErrorResponse(response)) {
63-
return response;
62+
if (response.status !== 200) {
63+
return response as unknown as BugSplatResponse<ErrorResponse>;
6464
}
6565

66-
const responseData = await response.json();
66+
const responseData = await response.json() as TableDataResponse<T, U>;
6767
const rows = responseData.rows || [];
6868
const pageData = responseData.pageData || {};
6969
const status = response.status;
@@ -82,8 +82,14 @@ export class TableDataClient {
8282

8383
export type ErrorResponse = { status: number; message: string };
8484

85-
export const isErrorResponse = (
86-
response: BugSplatResponse<unknown> | ErrorResponse
87-
): response is ErrorResponse => {
85+
export function isSuccessResponse<T, U = Record<string, unknown> | undefined>(
86+
response: BugSplatResponse<TableDataResponse<T, U> | ErrorResponse>
87+
): response is BugSplatResponse<TableDataResponse<T, U>> {
88+
return 'status' in response && response.status === 200;
89+
}
90+
91+
export function isErrorResponse<T, U = Record<string, unknown> | undefined>(
92+
response: BugSplatResponse<TableDataResponse<T, U> | ErrorResponse>
93+
): response is BugSplatResponse<ErrorResponse> {
8894
return 'status' in response && response.status !== 200;
89-
};
95+
}

src/crashes/crashes-api-client/crashes-api-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export class CrashesApiClient {
3737
>(request);
3838

3939
if (isErrorResponse(response)) {
40-
throw new Error(response.message);
40+
throw new Error((await response.json()).message);
4141
}
4242

4343
const responseData = await response.json();

src/crashes/key-crash-api-client/key-crash-api-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export class KeyCrashApiClient {
1616
const formParts = { stackKeyId: `${request.stackKeyId}` };
1717
const response = await this._tableDataClient.postGetData<CrashesApiResponseRow, KeyCrashPageDataRawResponse>(request, formParts);
1818
if (isErrorResponse(response)) {
19-
throw new Error(response.message);
19+
throw new Error((await response.json()).message);
2020
}
2121
const json = await response.json() as Required<TableDataResponse<CrashesApiResponseRow, KeyCrashPageDataRawResponse>>;
2222
const pageData = createKeyCrashPageData(json.pageData);

src/summary/summary-api-client/summary-api-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export class SummaryApiClient {
2424
);
2525

2626
if (isErrorResponse(response)) {
27-
throw new Error(response.message);
27+
throw new Error((await response.json()).message);
2828
}
2929

3030
const responseData = await response.json();

src/versions/versions-api-client/versions-api-client.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export class VersionsApiClient {
2626
async getVersions(request: TableDataRequest): Promise<TableDataResponse<VersionsApiRow>> {
2727
const response = await this._tableDataClient.getData<VersionsApiResponseRow>(request);
2828
if (isErrorResponse(response)) {
29-
throw new Error(response.message);
29+
throw new Error((await response.json()).message);
3030
}
3131
const json = await response.json();
3232
const pageData = json.pageData;

0 commit comments

Comments
 (0)