Skip to content

Commit

Permalink
Merge pull request #1 from gotranseo/beta
Browse files Browse the repository at this point in the history
Beta
  • Loading branch information
jdmcd authored Apr 20, 2018
2 parents 3c2a3b9 + 357dce7 commit 816894e
Show file tree
Hide file tree
Showing 11 changed files with 190 additions and 322 deletions.
11 changes: 10 additions & 1 deletion Package.swift
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
// swift-tools-version:4.0

import PackageDescription

let package = Package(
name: "Bugsnag",
products: [
.library(name: "Bugsnag", targets: ["Bugsnag"]),
],
dependencies: [
.Package(url: "https://github.com/vapor/vapor.git", majorVersion: 2)
.package(url: "https://github.com/vapor/vapor.git", from: "3.0.0-rc.2")
],
targets: [
.target(name: "Bugsnag", dependencies: ["Vapor"]),
.testTarget(name: "BugsnagTests", dependencies: ["Bugsnag"])
]
)
30 changes: 0 additions & 30 deletions Sources/Bugsnag/Abort+Report.swift

This file was deleted.

35 changes: 0 additions & 35 deletions Sources/Bugsnag/BugsnagConfig.swift

This file was deleted.

107 changes: 107 additions & 0 deletions Sources/Bugsnag/BugsnagPayload.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
//
// BugsnagPayload.swift
// Bugsnag
//
// Created by Jimmy McDermott on 1/16/18.
//

import Foundation
import Vapor

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

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

public final class Notifier: Content {
let name: String
let version: String
let url: String

init(name: String, version: String, url: String) {
self.name = name
self.version = version
self.url = url
}
}

public final class Event: Content {
let payloadVersion: Int
let exceptions: [Exception]
let app: App
let severity: String
let user: User
let metadata: Metadata

init(payloadVersion: Int, exceptions: [Exception], app: App, severity: String, user: User, metadata: Metadata) {
self.payloadVersion = payloadVersion
self.exceptions = exceptions
self.app = app
self.severity = severity
self.user = user
self.metadata = metadata
}

public final class Exception: Content {
let errorClass: String
let message: String
let stacktrace: [Stacktrace]

init(errorClass: String, message: String, stacktrace: [Stacktrace]) {
self.errorClass = errorClass
self.message = message
self.stacktrace = stacktrace
}
}

public final class Stacktrace: Content {
let file: String
let lineNumber: Int
let columnNumber: Int
let method: String

init(file: String, lineNumber: Int, columnNumber: Int, method: String) {
self.file = file
self.lineNumber = lineNumber
self.columnNumber = columnNumber
self.method = method
}
}

public final class App: Content {
let releaseStage: String
let type: String

init(releaseStage: String, type: String) {
self.releaseStage = releaseStage
self.type = type
}
}

public final class User: Content {
let id: String?
let name: String?
let email: String?

init(id: String?, name: String?, email: String?) {
self.id = id
self.name = name
self.email = email
}
}

public final class Metadata: Content {
let url: String

init(url: String) {
self.url = url
}
}
}
}
28 changes: 9 additions & 19 deletions Sources/Bugsnag/ConnectionManager.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,22 @@ import Vapor
import HTTP
import Foundation

public protocol ConnectionManagerType {
func submitPayload(_ json: JSON) throws -> Status
}

public final class ConnectionManager: ConnectionManagerType {
public let client: ClientFactoryProtocol
public final class ConnectionManager {
public let url: String
public let client: Client

public init(client: ClientFactoryProtocol, url: String) {
self.client = client
public init(url: String, client: Client) {
self.url = url
self.client = client
}

public func submitPayload(_ json: JSON) throws -> Status {
let response = try client.post(url, query: [:], headers(), json.makeBody())
return response.status
public func submitPayload<C: Content>(_ content: C) throws -> Future<Response> {
return client.post(url, content: content)
}



// MARK: - Private helpers

private func headers() -> [HeaderKey: String] {
let headers = [
HeaderKey("Content-Type"): "application/json",
]

return headers
private func headers() -> HTTPHeaders {
return HTTPHeaders([("Content-Type", "application/json")])
}
}
8 changes: 0 additions & 8 deletions Sources/Bugsnag/Drop+Bugsnag.swift

This file was deleted.

26 changes: 0 additions & 26 deletions Sources/Bugsnag/Middleware.swift

This file was deleted.

Loading

0 comments on commit 816894e

Please sign in to comment.