NotificationPayload.fromReleaseEvent constructor

NotificationPayload.fromReleaseEvent(
  1. ReleaseEvent event
)

Implementation

factory NotificationPayload.fromReleaseEvent(ReleaseEvent event) {
  final severity = NotificationSeverity.fromEventType(event.eventType);
  final titlePrefix = event.isPatch ? 'Shorebird Patch' : 'Flutter Release';
  final title =
      '$titlePrefix — ${event.version}+${event.buildNumber} (${event.eventType.eventName})';

  final messageBuf = StringBuffer();
  messageBuf.writeln('Version: ${event.version}+${event.buildNumber}');
  messageBuf.writeln('Mode: ${event.releaseMode}');
  messageBuf.writeln('Platforms: ${event.platforms.join(", ")}');
  if (event.commit != null) messageBuf.writeln('Commit: ${event.commit}');
  if (event.tag != null) messageBuf.writeln('Tag: ${event.tag}');
  messageBuf.writeln('Status: ${event.deploymentStatus}');
  if (event.error != null) messageBuf.writeln('Error: ${event.error}');

  return NotificationPayload(
    title: title,
    message: messageBuf.toString().trim(),
    event: event,
    severity: severity,
    metadata: event.toJson(),
  );
}