Skip to content

Commit fdcec41

Browse files
committed
add SentryEnvelopeHeader to SentryEnvelopeHeader
1 parent 0aec174 commit fdcec41

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

dart/lib/src/sentry_envelope_header.dart

+11-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'protocol/sentry_id.dart';
22
import 'protocol/sdk_version.dart';
33
import 'sentry_trace_context_header.dart';
4+
import 'utils.dart';
45

56
/// Header containing `SentryId` and `SdkVersion`.
67
class SentryEnvelopeHeader {
@@ -9,12 +10,14 @@ class SentryEnvelopeHeader {
910
this.sdkVersion, {
1011
this.dsn,
1112
this.traceContext,
13+
this.sentAt,
1214
});
1315
SentryEnvelopeHeader.newEventId()
1416
: eventId = SentryId.newId(),
1517
sdkVersion = null,
1618
dsn = null,
17-
traceContext = null;
19+
traceContext = null,
20+
sentAt = null;
1821

1922
/// The identifier of encoded `SentryEvent`.
2023
final SentryId? eventId;
@@ -27,6 +30,8 @@ class SentryEnvelopeHeader {
2730
/// The `DSN` of the Sentry project.
2831
final String? dsn;
2932

33+
DateTime? sentAt;
34+
3035
/// Header encoded as JSON
3136
Map<String, dynamic> toJson() {
3237
final json = <String, dynamic>{};
@@ -49,6 +54,11 @@ class SentryEnvelopeHeader {
4954
if (dsn != null) {
5055
json['dsn'] = dsn;
5156
}
57+
58+
if (sentAt != null) {
59+
json['sent_at'] = formatDateAsIso8601WithMillisPrecision(sentAt!);
60+
}
61+
5262
return json;
5363
}
5464
}

dart/test/sentry_envelope_header_test.dart

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:sentry/sentry.dart';
22
import 'package:sentry/src/sentry_envelope_header.dart';
3+
import 'package:sentry/src/utils.dart';
34
import 'package:test/test.dart';
45

56
import 'mocks.dart';
@@ -22,18 +23,21 @@ void main() {
2223
'trace_id': '${SentryId.newId()}',
2324
'public_key': '123',
2425
});
26+
final timestamp = DateTime.utc(2019);
2527
final sut = SentryEnvelopeHeader(
2628
eventId,
2729
sdkVersion,
2830
dsn: fakeDsn,
2931
traceContext: context,
32+
sentAt: timestamp,
3033
);
3134
final expextedSkd = sdkVersion.toJson();
3235
final expected = <String, dynamic>{
3336
'event_id': eventId.toString(),
3437
'sdk': expextedSkd,
3538
'trace': context.toJson(),
3639
'dsn': fakeDsn,
40+
'sent_at': formatDateAsIso8601WithMillisPrecision(timestamp),
3741
};
3842
expect(sut.toJson(), expected);
3943
});

0 commit comments

Comments
 (0)