If no current Sone exists, return an error.
[Sone.git] / src / main / java / net / pterodactylus / sone / web / ajax / CreateReplyAjaxPage.java
index ab5bca3..d8ae229 100644 (file)
@@ -17,6 +17,7 @@
 
 package net.pterodactylus.sone.web.ajax;
 
+import static com.google.common.base.Optional.fromNullable;
 import static com.google.common.base.Optional.of;
 
 import net.pterodactylus.sone.data.Post;
@@ -49,9 +50,6 @@ public class CreateReplyAjaxPage extends JsonPage {
        // JSONPAGE METHODS
        //
 
-       /**
-        * {@inheritDoc}
-        */
        @Override
        protected JsonReturnObject createJsonObject(FreenetRequest request) {
                String postId = request.getHttpRequest().getParam("post");
@@ -59,14 +57,17 @@ public class CreateReplyAjaxPage extends JsonPage {
                String senderId = request.getHttpRequest().getParam("sender");
                Optional<Sone> sender = webInterface.getCore().getLocalSone(senderId);
                if (!sender.isPresent()) {
-                       sender = of(getCurrentSone(request.getToadletContext()));
+                       sender = fromNullable(getCurrentSone(request.getToadletContext()));
+                       if (!sender.isPresent()) {
+                               return createErrorJsonObject("invalid-sone-id");
+                       }
                }
-               Optional<Post> post = webInterface.getCore().getPost(postId);
+               Optional<Post> post = webInterface.getCore().getDatabase().getPost(postId);
                if (!post.isPresent()) {
                        return createErrorJsonObject("invalid-post-id");
                }
                text = TextFilter.filter(request.getHttpRequest().getHeader("host"), text);
-               PostReply reply = webInterface.getCore().createReply(sender.get(), post.get(), text);
+               PostReply reply = sender.get().newPostReplyBuilder(post.get().getId()).withText(text).build(webInterface.getCore().postReplyCreated());
                return createSuccessJsonObject().put("reply", reply.getId()).put("sone", sender.get().getId());
        }