class ElasticAPM::Serializers::Transactions

def build(transaction)

rubocop:disable Metrics/AbcSize, Metrics/MethodLength
def build(transaction)
  base = {
    id: transaction.id,
    name: transaction.name,
    type: transaction.type,
    result: transaction.result.to_s,
    duration: ms(transaction.duration),
    timestamp: micros_to_time(transaction.timestamp).utc.iso8601,
    spans: transaction.spans.map(&method(:build_span)),
    sampled: transaction.sampled,
    context: transaction.context.to_h
  }
  if transaction.dropped_spans > 0
    base[:span_count] = { dropped: { total: transaction.dropped_spans } }
  end
  base
end