enhance(backend): improve sentry integration
This commit is contained in:
		| @@ -93,7 +93,7 @@ export class ApiCallService implements OnApplicationShutdown { | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	#onExecError(ep: IEndpoint, data: any, err: Error): void { | ||||
| 	#onExecError(ep: IEndpoint, data: any, err: Error, userId?: MiUser['id']): void { | ||||
| 		if (err instanceof ApiError || err instanceof AuthenticationError) { | ||||
| 			throw err; | ||||
| 		} else { | ||||
| @@ -108,10 +108,12 @@ export class ApiCallService implements OnApplicationShutdown { | ||||
| 					id: errId, | ||||
| 				}, | ||||
| 			}); | ||||
| 			console.error(err, errId); | ||||
|  | ||||
| 			if (this.config.sentryForBackend) { | ||||
| 				Sentry.captureMessage(`Internal error occurred in ${ep.name}: ${err.message}`, { | ||||
| 					user: { | ||||
| 						id: userId, | ||||
| 					}, | ||||
| 					extra: { | ||||
| 						ep: ep.name, | ||||
| 						ps: data, | ||||
| @@ -410,9 +412,13 @@ export class ApiCallService implements OnApplicationShutdown { | ||||
|  | ||||
| 		// API invoking | ||||
| 		if (this.config.sentryForBackend) { | ||||
| 			return await Sentry.startSpan({ name: 'API: ' + ep.name }, () => ep.exec(data, user, token, file, request.ip, request.headers).catch((err: Error) => this.#onExecError(ep, data, err))); | ||||
| 			return await Sentry.startSpan({ | ||||
| 				name: 'API: ' + ep.name, | ||||
| 			}, () => ep.exec(data, user, token, file, request.ip, request.headers) | ||||
| 				.catch((err: Error) => this.#onExecError(ep, data, err, user?.id))); | ||||
| 		} else { | ||||
| 			return await ep.exec(data, user, token, file, request.ip, request.headers).catch((err: Error) => this.#onExecError(ep, data, err)); | ||||
| 			return await ep.exec(data, user, token, file, request.ip, request.headers) | ||||
| 				.catch((err: Error) => this.#onExecError(ep, data, err, user?.id)); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 syuilo
					syuilo