aboutsummaryrefslogtreecommitdiff
path: root/juick-server
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2018-03-28 22:28:33 +0300
committerGravatar Vitaly Takmazov2018-03-28 22:31:43 +0300
commitf6eb11a23ab645b187c5911ec762a3d6ca58140c (patch)
tree54f79790dc11a4e94487a5fce671f0514c092ccb /juick-server
parenta41684e44da0021e2f8e653db28f1535e3941eb7 (diff)
move like API to server
Diffstat (limited to 'juick-server')
-rw-r--r--juick-server/src/main/java/com/juick/server/api/Post.java23
-rw-r--r--juick-server/src/test/java/com/juick/server/tests/ServerTests.java14
2 files changed, 34 insertions, 3 deletions
diff --git a/juick-server/src/main/java/com/juick/server/api/Post.java b/juick-server/src/main/java/com/juick/server/api/Post.java
index e09de900..17426072 100644
--- a/juick-server/src/main/java/com/juick/server/api/Post.java
+++ b/juick-server/src/main/java/com/juick/server/api/Post.java
@@ -18,8 +18,8 @@
package com.juick.server.api;
import com.juick.User;
-import com.juick.server.ServerManager;
import com.juick.server.EmailManager;
+import com.juick.server.ServerManager;
import com.juick.server.util.*;
import com.juick.service.MessagesService;
import com.juick.service.SubscriptionService;
@@ -285,4 +285,25 @@ public class Post {
throw new HttpForbiddenException();
}
}
+ @PostMapping("/like")
+ @ResponseStatus(value = HttpStatus.OK)
+ public void doPostRecomm(@RequestParam Integer mid) {
+ com.juick.User visitor = UserUtils.getCurrentUser();
+ if (visitor.getUid() == 0) {
+ throw new HttpForbiddenException();
+ }
+ com.juick.Message msg = messagesService.getMessage(mid);
+ if (msg == null) {
+ throw new HttpNotFoundException();
+ }
+ if (msg.getUser().getUid() == visitor.getUid()) {
+ throw new HttpForbiddenException();
+ }
+ rocks.xmpp.core.stanza.model.Message xmsg = new rocks.xmpp.core.stanza.model.Message();
+ xmsg.setType(rocks.xmpp.core.stanza.model.Message.Type.CHAT);
+ xmsg.setFrom(Jid.of(String.valueOf(visitor.getUid()), "uid.juick.com", "mail"));
+ xmsg.setTo(Jid.of("juick@juick.com/Juick"));
+ xmsg.setBody(String.format("! #%d", mid));
+ serverManager.sendMessage(xmsg);
+ }
}
diff --git a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
index 52504f4a..c9556a98 100644
--- a/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
+++ b/juick-server/src/test/java/com/juick/server/tests/ServerTests.java
@@ -41,7 +41,6 @@ import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoCon
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.http.MediaType;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -465,7 +464,7 @@ public class ServerTests {
.param("mid", "1").param("uid", String.valueOf(ugnich.getUid()))).andExpect(status().isUnauthorized());
}
@Test
- public void topTest() throws Exception {
+ public void topTest() {
int topmid = messagesService.createMessage(ugnich.getUid(), "top message", null, null);
IntStream.rangeClosed(6, 12).forEach(i -> {
messagesService.createReply(topmid, 0, i, "yo", null);
@@ -654,4 +653,15 @@ public class ServerTests {
Assert.assertThat(count, equalTo(0L));
mockMvc.perform(get("/ws/_all")).andExpect(status().isBadRequest());
}
+
+ @Test
+ public void likesTests() throws Exception {
+ int mid = messagesService.createMessage(ugnich.getUid(), "to be liked", null, null);
+ String freefdHash = userService.getHashByUID(freefd.getUid());
+ int freefdMid = messagesService.createMessage(freefd.getUid(), "to be not liked", null, null);
+ mockMvc.perform(post("/like?mid=" + mid + "&hash=" + freefdHash))
+ .andExpect(status().isOk());
+ mockMvc.perform(post("/like?mid=" + freefdMid + "&hash=" + freefdHash))
+ .andExpect(status().isForbidden());
+ }
}