From 205950fc5f16fa61dabc6955a6a993ccb5b1fcbc Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Sun, 22 Mar 2015 15:49:37 -0700 Subject: [PATCH] Method to mark the thread as read --- .../kohsuke/github/GHNotificationStream.java | 2 +- .../java/org/kohsuke/github/GHThread.java | 19 ++++++++++++++++++- src/test/java/org/kohsuke/github/AppTest.java | 5 ++++- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/kohsuke/github/GHNotificationStream.java b/src/main/java/org/kohsuke/github/GHNotificationStream.java index d97b2027f4..5ea6fb69cb 100644 --- a/src/main/java/org/kohsuke/github/GHNotificationStream.java +++ b/src/main/java/org/kohsuke/github/GHNotificationStream.java @@ -141,7 +141,7 @@ GHThread fetch() { long nt = n.getUpdatedAt().getTime(); if (nt >= lastUpdated) { lastUpdated = nt; - return n; + return n.wrap(root); } } diff --git a/src/main/java/org/kohsuke/github/GHThread.java b/src/main/java/org/kohsuke/github/GHThread.java index fcbada74c2..044174f3ba 100644 --- a/src/main/java/org/kohsuke/github/GHThread.java +++ b/src/main/java/org/kohsuke/github/GHThread.java @@ -1,20 +1,23 @@ package org.kohsuke.github; +import java.io.IOException; import java.util.Date; /** * A conversation in the notification API. * - * * @see documentation + * @see GHNotificationStream * @author Kohsuke Kawaguchi */ public class GHThread extends GHObject { + private GitHub root; private GHRepository repository; private Subject subject; private String reason; private boolean unread; private String last_read_at; + private String url; static class Subject { String title; @@ -54,4 +57,18 @@ public String getTitle() { public String getType() { return subject.type; } + + /*package*/ GHThread wrap(GitHub root) { + this.root = root; + if (this.repository!=null) + this.repository.wrap(root); + return this; + } + + /** + * Marks this thread as read. + */ + public void markAsRead() throws IOException { + new Requester(root).method("PATCH").to(url); + } } diff --git a/src/test/java/org/kohsuke/github/AppTest.java b/src/test/java/org/kohsuke/github/AppTest.java index f979f0d686..b5d7c517a7 100755 --- a/src/test/java/org/kohsuke/github/AppTest.java +++ b/src/test/java/org/kohsuke/github/AppTest.java @@ -811,7 +811,10 @@ public void searchContent() throws Exception { public void notifications() throws Exception { boolean found=false; for (GHThread t : gitHub.listNotifications().nonBlocking(true).read(true)) { - found = true; + if (!found) { + found = true; + t.markAsRead(); // test this by calling it once on old nofication + } assertNotNull(t.getTitle()); assertNotNull(t.getReason());