Skip to content

Commit d577e35

Browse files
authored
Feat : add a Hub class (#113)
1 parent 5018978 commit d577e35

21 files changed

+793
-160
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
- new static API : Sentry.init(), Sentry.captureEvent() #108
2121
- expect a sdkName based on the test platform #105
2222
- Added Scope and Breadcrumb ring buffer #109
23+
- Added Hub to SDK #113
2324

2425
# `package:sentry` changelog
2526

dart/example/event_example.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ final event = Event(
55
serverName: 'server.dart',
66
release: '1.4.0-preview.1',
77
environment: 'Test',
8-
message: Message(formatted: 'This is an example Dart event.'),
8+
message: Message('This is an example Dart event.'),
99
transaction: '/example/app',
1010
level: SeverityLevel.warning,
1111
tags: const <String, String>{'project-id': '7371'},

dart/example/main.dart

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,29 +23,21 @@ Future<void> main(List<String> rawArgs) async {
2323
print('\nReporting a complete event example: ');
2424

2525
// Sends a full Sentry event payload to show the different parts of the UI.
26-
final response = await Sentry.captureEvent(event);
26+
final sentryId = await Sentry.captureEvent(event);
2727

28-
if (response.isSuccessful) {
29-
print('SUCCESS\nid: ${response.eventId}');
30-
} else {
31-
print('FAILURE: ${response.error}');
32-
}
28+
print('SentryId : ${sentryId}');
3329

3430
try {
3531
await foo();
3632
} catch (error, stackTrace) {
3733
print('\nReporting the following stack trace: ');
3834
print(stackTrace);
39-
final response = await Sentry.captureException(
35+
final sentryId = await Sentry.captureException(
4036
error,
4137
stackTrace: stackTrace,
4238
);
4339

44-
if (response.isSuccessful) {
45-
print('SUCCESS\nid: ${response.eventId}');
46-
} else {
47-
print('FAILURE: ${response.error}');
48-
}
40+
print('SentryId : ${sentryId}');
4941
} finally {
5042
await Sentry.close();
5143
}

dart/lib/src/client.dart

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import 'dart:convert';
33

44
import 'package:http/http.dart';
55
import 'package:meta/meta.dart';
6+
import 'package:sentry/sentry.dart';
67

78
import 'client_stub.dart'
89
if (dart.library.html) 'browser_client.dart'
@@ -136,9 +137,10 @@ abstract class SentryClient {
136137
}
137138

138139
/// Reports an [event] to Sentry.io.
139-
Future<SentryResponse> captureEvent({
140-
@required Event event,
140+
Future<SentryId> captureEvent(
141+
Event event, {
141142
StackFrameFilter stackFrameFilter,
143+
Scope scope,
142144
}) async {
143145
final now = _clock();
144146
var authHeader = 'Sentry sentry_version=6, sentry_client=$clientId, '
@@ -183,27 +185,38 @@ abstract class SentryClient {
183185
);
184186

185187
if (response.statusCode != 200) {
186-
var errorMessage = 'Sentry.io responded with HTTP ${response.statusCode}';
188+
/*var errorMessage = 'Sentry.io responded with HTTP ${response.statusCode}';
187189
if (response.headers['x-sentry-error'] != null) {
188190
errorMessage += ': ${response.headers['x-sentry-error']}';
189-
}
190-
return SentryResponse.failure(errorMessage);
191+
}*/
192+
return SentryId.empty();
191193
}
192194

193-
final eventId = '${json.decode(response.body)['id']}';
194-
return SentryResponse.success(eventId: eventId);
195+
final eventId = json.decode(response.body)['id'];
196+
return eventId != null ? SentryId(eventId) : SentryId.empty();
195197
}
196198

197-
/// Reports the [exception] and optionally its [stackTrace] to Sentry.io.
198-
Future<SentryResponse> captureException({
199-
@required dynamic exception,
200-
dynamic stackTrace,
201-
}) {
199+
/// Reports the [throwable] and optionally its [stackTrace] to Sentry.io.
200+
Future<SentryId> captureException(dynamic throwable, {dynamic stackTrace}) {
202201
final event = Event(
203-
exception: exception,
202+
exception: throwable,
204203
stackTrace: stackTrace,
205204
);
206-
return captureEvent(event: event);
205+
return captureEvent(event);
206+
}
207+
208+
/// Reports the [template]
209+
Future<SentryId> captureMessage(
210+
String formatted, {
211+
SeverityLevel level = SeverityLevel.info,
212+
String template,
213+
List<dynamic> params,
214+
}) {
215+
final event = Event(
216+
message: Message(formatted, template: template, params: params),
217+
level: level,
218+
);
219+
return captureEvent(event);
207220
}
208221

209222
Future<void> close() async {

0 commit comments

Comments
 (0)