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