Skip to content

Commit

Permalink
Add in
Browse files Browse the repository at this point in the history
request body
  • Loading branch information
jdmcd committed May 1, 2020
1 parent 64876c0 commit 501e24a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
9 changes: 8 additions & 1 deletion Sources/Bugsnag/BugsnagPayload.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@ import Vapor

public final class BugsnagPayload: Content {
let apiKey: String
let payloadVersion: String
let notifier: Notifier
let events: [Event]

init(apiKey: String, notifier: Notifier, events: [Event]) {
self.apiKey = apiKey
self.notifier = notifier
self.events = events
self.payloadVersion = "5"
}

public final class Notifier: Content {
Expand Down Expand Up @@ -116,7 +118,12 @@ public final class BugsnagPayload: Content {

public final class Metadata: Content {
let url: String

var request: RequestObject?

struct RequestObject: Content {
let body: String
}

init(url: String) {
self.url = url
}
Expand Down
10 changes: 8 additions & 2 deletions Sources/Bugsnag/PayloadTransformer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,21 @@ public struct PayloadTransformer: PayloadTransformerType {
lineNumber: lineNumber ?? 0,
columnNumber: 0,
method: funcName ?? "")

let exception = BugsnagPayload.Event.Exception(errorClass: message, message: message, stacktrace: [stacktrace])

let metadata = BugsnagPayload.Event.Metadata(url: request?.url.string ?? "")
if let requestBodyData = request?.body.data, let requestString = String(data: Data(requestBodyData.readableBytesView), encoding: .utf8) {
metadata.request = .init(body: requestString)
}

let exception = BugsnagPayload.Event.Exception(errorClass: message, message: message, stacktrace: [stacktrace])
let app = BugsnagPayload.Event.App(releaseStage: environment.name, type: "Vapor", version: version)

var headersDict = [String: String]()

if let req = request {
for header in req.headers {
// Don't send the authorization header
guard header.name.lowercased() != "Authorization" else { continue }
headersDict[header.name] = header.value
}
}
Expand Down

0 comments on commit 501e24a

Please sign in to comment.