Don’t always create a Sone for a given ID.
[Sone.git] / src / main / java / net / pterodactylus / sone / web / ajax / GetNotificationsAjaxPage.java
index f46351c..2264b2e 100644 (file)
@@ -20,6 +20,7 @@ package net.pterodactylus.sone.web.ajax;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.Set;
 
 import net.pterodactylus.sone.web.WebInterface;
 import net.pterodactylus.util.json.JsonArray;
@@ -34,9 +35,10 @@ import net.pterodactylus.util.notify.Notification;
 public class GetNotificationsAjaxPage extends JsonPage {
 
        /**
-        * TODO
+        * Creates a new “get notifications” AJAX handler.
         *
         * @param webInterface
+        *            The Sone web interface
         */
        public GetNotificationsAjaxPage(WebInterface webInterface) {
                super("ajax/getNotifications.ajax", webInterface);
@@ -52,13 +54,18 @@ public class GetNotificationsAjaxPage extends JsonPage {
        @Override
        protected JsonObject createJsonObject(Request request) {
                List<Notification> notifications = new ArrayList<Notification>(webInterface.getNotifications().getChangedNotifications());
+               Set<Notification> removedNotifications = webInterface.getNotifications().getRemovedNotifications();
                Collections.sort(notifications, Notification.LAST_UPDATED_TIME_SORTER);
                JsonObject result = createSuccessJsonObject();
                JsonArray jsonNotifications = new JsonArray();
                for (Notification notification : notifications) {
                        jsonNotifications.add(createJsonNotification(notification));
                }
-               return result.put("notifications", jsonNotifications);
+               JsonArray jsonRemovedNotifications = new JsonArray();
+               for (Notification notification : removedNotifications) {
+                       jsonRemovedNotifications.add(createJsonNotification(notification));
+               }
+               return result.put("notifications", jsonNotifications).put("removedNotifications", jsonRemovedNotifications);
        }
 
        /**