/*
- * Sone - DismissNotificationAjaxPage.java - Copyright © 2010 David Roden
+ * Sone - DismissNotificationAjaxPage.java - Copyright © 2010–2016 David Roden
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
package net.pterodactylus.sone.web.ajax;
import net.pterodactylus.sone.web.WebInterface;
-import net.pterodactylus.util.json.JsonObject;
+import net.pterodactylus.sone.web.page.FreenetRequest;
import net.pterodactylus.util.notify.Notification;
+import com.google.common.base.Optional;
+
/**
* AJAX page that lets the user dismiss a notification.
*
* The Sone web interface
*/
public DismissNotificationAjaxPage(WebInterface webInterface) {
- super("ajax/dismissNotification.ajax", webInterface);
+ super("dismissNotification.ajax", webInterface);
}
/**
* {@inheritDoc}
*/
@Override
- protected JsonObject createJsonObject(Request request) {
+ protected JsonReturnObject createJsonObject(FreenetRequest request) {
String notificationId = request.getHttpRequest().getParam("notification");
- Notification notification = webInterface.getCore().getNotifications().getNotification(notificationId);
- if (notification == null) {
+ Optional<Notification> notification = webInterface.getNotification(notificationId);
+ if (!notification.isPresent()) {
return createErrorJsonObject("invalid-notification-id");
}
- if (!notification.isDismissable()) {
+ if (!notification.get().isDismissable()) {
return createErrorJsonObject("not-dismissable");
}
- webInterface.getCore().getNotifications().removeNotification(notification);
+ notification.get().dismiss();
return createSuccessJsonObject();
}
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected boolean requiresLogin() {
+ return false;
+ }
+
}