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;
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);
@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) {
- JsonObject jsonNotification = new JsonObject();
- jsonNotification.put("id", notification.getId());
- jsonNotification.put("text", notification.toString());
- jsonNotification.put("createdTime", notification.getCreatedTime());
- jsonNotification.put("lastUpdatedTime", notification.getLastUpdatedTime());
- jsonNotification.put("dismissable", notification.isDismissable());
- jsonNotifications.add(jsonNotification);
+ 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);
}
/**
return false;
}
+ //
+ // PRIVATE METHODS
+ //
+
+ /**
+ * Creates a JSON object from the given notification.
+ *
+ * @param notification
+ * The notification to create a JSON object
+ * @return The JSON object
+ */
+ private static JsonObject createJsonNotification(Notification notification) {
+ JsonObject jsonNotification = new JsonObject();
+ jsonNotification.put("id", notification.getId());
+ jsonNotification.put("text", notification.toString());
+ jsonNotification.put("createdTime", notification.getCreatedTime());
+ jsonNotification.put("lastUpdatedTime", notification.getLastUpdatedTime());
+ jsonNotification.put("dismissable", notification.isDismissable());
+ return jsonNotification;
+ }
+
}