From 6fad8812ab518b32a5def549166087a50d5ab8a5 Mon Sep 17 00:00:00 2001 From: fractalwrench Date: Mon, 22 Jan 2018 17:09:39 +0000 Subject: [PATCH 1/2] add api key to error report payload --- .../java/com/bugsnag/android/ErrorStoreTest.java | 6 +++--- .../java/com/bugsnag/android/ReportTest.java | 2 +- sdk/src/main/java/com/bugsnag/android/Client.java | 2 +- sdk/src/main/java/com/bugsnag/android/ErrorStore.java | 2 +- sdk/src/main/java/com/bugsnag/android/Report.java | 11 ++++++++--- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/sdk/src/androidTest/java/com/bugsnag/android/ErrorStoreTest.java b/sdk/src/androidTest/java/com/bugsnag/android/ErrorStoreTest.java index 170e42944a..0ef9322bf1 100644 --- a/sdk/src/androidTest/java/com/bugsnag/android/ErrorStoreTest.java +++ b/sdk/src/androidTest/java/com/bugsnag/android/ErrorStoreTest.java @@ -108,8 +108,8 @@ private static void checkFileMatchesErrorReport(File file, Error error) throws E assertFalse(file.length() <= 0); // ensure the file can be serialised into JSON report - JSONObject memory = getJsonObjectFromReport(new Report(file)); - JSONObject disk = getJsonObjectFromReport(new Report(error)); + JSONObject memory = getJsonObjectFromReport(new Report("api-key", file)); + JSONObject disk = getJsonObjectFromReport(new Report("api-key", error)); // validate info validateReportPayload(memory); @@ -118,7 +118,7 @@ private static void checkFileMatchesErrorReport(File file, Error error) throws E static void validateReportPayload(JSONObject payload) throws JSONException { assertNotNull(payload); - assertEquals(2, payload.length()); + assertEquals(3, payload.length()); JSONArray events = payload.getJSONArray("events"); assertNotNull(events); diff --git a/sdk/src/androidTest/java/com/bugsnag/android/ReportTest.java b/sdk/src/androidTest/java/com/bugsnag/android/ReportTest.java index ebbf4e8e02..c055f2f12e 100644 --- a/sdk/src/androidTest/java/com/bugsnag/android/ReportTest.java +++ b/sdk/src/androidTest/java/com/bugsnag/android/ReportTest.java @@ -26,7 +26,7 @@ public class ReportTest { public void setUp() throws Exception { config = new Configuration("example-api-key"); Error error = new Error.Builder(config, new RuntimeException("Something broke"), null).build(); - report = new Report(error); + report = new Report("api-key", error); } @Test diff --git a/sdk/src/main/java/com/bugsnag/android/Client.java b/sdk/src/main/java/com/bugsnag/android/Client.java index a849443f7e..4c3970fe5b 100644 --- a/sdk/src/main/java/com/bugsnag/android/Client.java +++ b/sdk/src/main/java/com/bugsnag/android/Client.java @@ -950,7 +950,7 @@ void notify(@NonNull Error error, @NonNull DeliveryStyle style, @Nullable Callba } // Build the report - Report report = new Report(error); + Report report = new Report(config.getApiKey(), error); if (callback != null) { callback.beforeNotify(report); diff --git a/sdk/src/main/java/com/bugsnag/android/ErrorStore.java b/sdk/src/main/java/com/bugsnag/android/ErrorStore.java index 4ad08df6c6..a2a2aeeefe 100644 --- a/sdk/src/main/java/com/bugsnag/android/ErrorStore.java +++ b/sdk/src/main/java/com/bugsnag/android/ErrorStore.java @@ -91,7 +91,7 @@ public void run() { // Look up all saved error files private void flushErrorReport(File errorFile, ErrorReportApiClient errorReportApiClient) { try { - Report report = new Report(errorFile); + Report report = new Report(config.getApiKey(), errorFile); errorReportApiClient.postReport(config.getEndpoint(), report, config.getErrorApiHeaders()); Logger.info("Deleting sent error file " + errorFile.getName()); diff --git a/sdk/src/main/java/com/bugsnag/android/Report.java b/sdk/src/main/java/com/bugsnag/android/Report.java index cc6ccad813..c3b856faa0 100644 --- a/sdk/src/main/java/com/bugsnag/android/Report.java +++ b/sdk/src/main/java/com/bugsnag/android/Report.java @@ -18,17 +18,20 @@ public class Report implements JsonStream.Streamable { @Nullable private Error error; private Notifier notifier; + private String apiKey; - Report(@Nullable File errorFile) { + Report(@NonNull String apiKey, @Nullable File errorFile) { this.error = null; this.errorFile = errorFile; this.notifier = Notifier.getInstance(); + this.apiKey = apiKey; } - Report(@Nullable Error error) { + Report(@NonNull String apiKey, @Nullable Error error) { this.error = error; this.errorFile = null; this.notifier = Notifier.getInstance(); + this.apiKey = apiKey; } @Override @@ -36,6 +39,8 @@ public void toStream(@NonNull JsonStream writer) throws IOException { // Create a JSON stream and top-level object writer.beginObject(); + writer.name("apiKey").value(apiKey); + // Write the notifier info writer.name("notifier").value(notifier); @@ -64,8 +69,8 @@ public Error getError() { return error; } - @Deprecated public void setApiKey(@NonNull String apiKey) { + this.apiKey = apiKey; } public void setNotifierVersion(@NonNull String version) { From ea5bf4bd27a96395314803143abb160682f9313c Mon Sep 17 00:00:00 2001 From: Delisa Mason Date: Mon, 22 Jan 2018 16:38:32 -0800 Subject: [PATCH 2/2] Update payload keys length --- .../androidTest/java/com/bugsnag/android/CrashReportTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/src/androidTest/java/com/bugsnag/android/CrashReportTest.java b/example/src/androidTest/java/com/bugsnag/android/CrashReportTest.java index 4fe2b5d990..86407e174c 100644 --- a/example/src/androidTest/java/com/bugsnag/android/CrashReportTest.java +++ b/example/src/androidTest/java/com/bugsnag/android/CrashReportTest.java @@ -54,7 +54,7 @@ public void beforeNotify(Report report) { assertNotNull(report); JSONObject json = getJson(report); - assertEquals(2, json.length()); + assertEquals(3, json.length()); JSONObject event = json.getJSONArray("events").getJSONObject(0); assertNotNull(event);