Display formatted HTTP errors
This commit is contained in:
parent
fb729b7d89
commit
dae8a9cc89
2 changed files with 104 additions and 45 deletions
|
|
@ -23,6 +23,18 @@ export class SyncService {
|
|||
});
|
||||
}
|
||||
|
||||
private static formatError(
|
||||
error: components["schemas"]["SerializedError"]
|
||||
): string {
|
||||
let result = error.message;
|
||||
if (error.causes.length > 0) {
|
||||
const causes = error.causes.join(", ");
|
||||
result += ` caused by: ${causes}`;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public async ping(): Promise<components["schemas"]["PingResponse"]> {
|
||||
const response = await this.client.GET("/ping", {
|
||||
params: {
|
||||
|
|
@ -39,7 +51,11 @@ export class SyncService {
|
|||
);
|
||||
|
||||
if (!response.data) {
|
||||
throw new Error(`Failed to ping server: ${response.error}`);
|
||||
throw new Error(
|
||||
`Failed to ping server: ${SyncService.formatError(
|
||||
response.error
|
||||
)}`
|
||||
);
|
||||
}
|
||||
|
||||
return response.data;
|
||||
|
|
@ -76,7 +92,11 @@ export class SyncService {
|
|||
);
|
||||
|
||||
if (!response.data) {
|
||||
throw new Error(`Failed to create document: ${response.error}`);
|
||||
throw new Error(
|
||||
`Failed to create document: ${SyncService.formatError(
|
||||
response.error
|
||||
)}`
|
||||
);
|
||||
}
|
||||
|
||||
Logger.getInstance().debug(
|
||||
|
|
@ -125,7 +145,11 @@ export class SyncService {
|
|||
);
|
||||
|
||||
if (!response.data) {
|
||||
throw new Error(`Failed to update document: ${response.error}`);
|
||||
throw new Error(
|
||||
`Failed to update document: ${SyncService.formatError(
|
||||
response.error
|
||||
)}`
|
||||
);
|
||||
}
|
||||
|
||||
Logger.getInstance().debug(
|
||||
|
|
@ -199,7 +223,11 @@ export class SyncService {
|
|||
);
|
||||
|
||||
if (!response.data) {
|
||||
throw new Error(`Failed to get document: ${response.error}`);
|
||||
throw new Error(
|
||||
`Failed to get document: ${SyncService.formatError(
|
||||
response.error
|
||||
)}`
|
||||
);
|
||||
}
|
||||
|
||||
Logger.getInstance().debug(
|
||||
|
|
@ -230,7 +258,11 @@ export class SyncService {
|
|||
|
||||
const { error } = response;
|
||||
if (error) {
|
||||
throw new Error(`Failed to get documents: ${error}`);
|
||||
throw new Error(
|
||||
`Failed to get documents: ${SyncService.formatError(
|
||||
response.error
|
||||
)}`
|
||||
);
|
||||
}
|
||||
|
||||
Logger.getInstance().debug(
|
||||
|
|
|
|||
|
|
@ -23,11 +23,21 @@ export interface paths {
|
|||
requestBody?: never;
|
||||
responses: {
|
||||
200: {
|
||||
headers: Record<string, unknown>;
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["PingResponse"];
|
||||
};
|
||||
};
|
||||
default: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["SerializedError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
put?: never;
|
||||
|
|
@ -61,11 +71,21 @@ export interface paths {
|
|||
requestBody?: never;
|
||||
responses: {
|
||||
200: {
|
||||
headers: Record<string, unknown>;
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["FetchLatestDocumentsResponse"];
|
||||
};
|
||||
};
|
||||
default: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["SerializedError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
put?: never;
|
||||
|
|
@ -87,11 +107,21 @@ export interface paths {
|
|||
};
|
||||
responses: {
|
||||
200: {
|
||||
headers: Record<string, unknown>;
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["DocumentVersion"];
|
||||
};
|
||||
};
|
||||
default: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["SerializedError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
delete?: never;
|
||||
|
|
@ -122,11 +152,21 @@ export interface paths {
|
|||
requestBody?: never;
|
||||
responses: {
|
||||
200: {
|
||||
headers: Record<string, unknown>;
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["DocumentVersion"];
|
||||
};
|
||||
};
|
||||
default: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["SerializedError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
put: {
|
||||
|
|
@ -148,11 +188,21 @@ export interface paths {
|
|||
};
|
||||
responses: {
|
||||
200: {
|
||||
headers: Record<string, unknown>;
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["DocumentVersion"];
|
||||
};
|
||||
};
|
||||
default: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["SerializedError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
post?: never;
|
||||
|
|
@ -176,48 +226,21 @@ export interface paths {
|
|||
responses: {
|
||||
/** @description no content */
|
||||
200: {
|
||||
headers: Record<string, unknown>;
|
||||
content?: never;
|
||||
};
|
||||
};
|
||||
};
|
||||
options?: never;
|
||||
head?: never;
|
||||
patch?: never;
|
||||
trace?: never;
|
||||
};
|
||||
"/ws": {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
get: {
|
||||
parameters: {
|
||||
query?: never;
|
||||
header?: never;
|
||||
path?: never;
|
||||
cookie?: never;
|
||||
};
|
||||
requestBody?: never;
|
||||
responses: {
|
||||
/** @description websocket upgrade */
|
||||
101: {
|
||||
headers: {
|
||||
connection?: "upgrade";
|
||||
upgrade?: "websocket";
|
||||
"sec-websocket-key"?: string;
|
||||
"sec-websocket-protocol"?: string;
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content?: never;
|
||||
};
|
||||
default: {
|
||||
headers: {
|
||||
[name: string]: unknown;
|
||||
};
|
||||
content: {
|
||||
"application/json": components["schemas"]["SerializedError"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
put?: never;
|
||||
post?: never;
|
||||
delete?: never;
|
||||
options?: never;
|
||||
head?: never;
|
||||
patch?: never;
|
||||
|
|
@ -299,6 +322,10 @@ export interface components {
|
|||
/** Format: int64 */
|
||||
since_update_id?: number | null;
|
||||
};
|
||||
SerializedError: {
|
||||
causes: string[];
|
||||
message: string;
|
||||
};
|
||||
UpdateDocumentVersion: {
|
||||
contentBase64: string;
|
||||
/** Format: date-time */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue