aboutsummaryrefslogtreecommitdiff
path: root/juick-api
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2016-12-09 16:14:27 +0300
committerGravatar Vitaly Takmazov2016-12-09 16:14:27 +0300
commit559ae343aa72db04e12b94acfa0bec30ed9a11f1 (patch)
tree5832b97c6a6a4b565de15a474bae86059763d6bb /juick-api
parent22d30c3b50fe0ea4c18c45a4450fb1a8b1f1b1b8 (diff)
juick-spring-www: merge some work from develop branch, port some templates to Thymeleaf
Diffstat (limited to 'juick-api')
-rw-r--r--juick-api/src/main/java/com/juick/api/controllers/Messages.java4
-rw-r--r--juick-api/src/main/java/com/juick/api/controllers/Notifications.java4
-rw-r--r--juick-api/src/main/java/com/juick/api/controllers/Others.java4
-rw-r--r--juick-api/src/main/java/com/juick/api/controllers/PM.java4
-rw-r--r--juick-api/src/main/java/com/juick/api/controllers/Post.java8
-rw-r--r--juick-api/src/main/java/com/juick/api/controllers/Subscriptions.java4
-rw-r--r--juick-api/src/main/java/com/juick/api/controllers/Users.java4
-rw-r--r--juick-api/src/main/java/com/juick/api/util/HttpBadRequestException.java12
-rw-r--r--juick-api/src/main/java/com/juick/api/util/HttpForbiddenException.java12
-rw-r--r--juick-api/src/main/java/com/juick/api/util/HttpNotFoundException.java12
-rw-r--r--juick-api/src/main/java/com/juick/api/util/HttpUtils.java111
-rw-r--r--juick-api/src/test/java/com/juick/api/tests/MessagesTests.java30
12 files changed, 31 insertions, 178 deletions
diff --git a/juick-api/src/main/java/com/juick/api/controllers/Messages.java b/juick-api/src/main/java/com/juick/api/controllers/Messages.java
index f30a7687..723d2f15 100644
--- a/juick-api/src/main/java/com/juick/api/controllers/Messages.java
+++ b/juick-api/src/main/java/com/juick/api/controllers/Messages.java
@@ -3,8 +3,8 @@ package com.juick.api.controllers;
import com.juick.Tag;
import com.juick.User;
import com.juick.api.ApiServer;
-import com.juick.api.util.HttpBadRequestException;
-import com.juick.api.util.HttpForbiddenException;
+import com.juick.server.util.HttpBadRequestException;
+import com.juick.server.util.HttpForbiddenException;
import com.juick.server.helpers.Status;
import com.juick.service.MessagesService;
import com.juick.service.TagService;
diff --git a/juick-api/src/main/java/com/juick/api/controllers/Notifications.java b/juick-api/src/main/java/com/juick/api/controllers/Notifications.java
index ff3679c0..cd31ad39 100644
--- a/juick-api/src/main/java/com/juick/api/controllers/Notifications.java
+++ b/juick-api/src/main/java/com/juick/api/controllers/Notifications.java
@@ -4,8 +4,8 @@ import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.juick.Message;
import com.juick.User;
-import com.juick.api.util.HttpBadRequestException;
-import com.juick.api.util.HttpForbiddenException;
+import com.juick.server.util.HttpBadRequestException;
+import com.juick.server.util.HttpForbiddenException;
import com.juick.server.helpers.Status;
import com.juick.server.helpers.TokensList;
import com.juick.service.MessagesService;
diff --git a/juick-api/src/main/java/com/juick/api/controllers/Others.java b/juick-api/src/main/java/com/juick/api/controllers/Others.java
index e2d802d8..852c03d6 100644
--- a/juick-api/src/main/java/com/juick/api/controllers/Others.java
+++ b/juick-api/src/main/java/com/juick/api/controllers/Others.java
@@ -1,8 +1,8 @@
package com.juick.api.controllers;
import com.juick.User;
-import com.juick.api.util.HttpForbiddenException;
-import com.juick.api.util.HttpNotFoundException;
+import com.juick.server.util.HttpForbiddenException;
+import com.juick.server.util.HttpNotFoundException;
import com.juick.server.helpers.PrivateChats;
import com.juick.service.PMQueriesService;
import com.juick.service.UserService;
diff --git a/juick-api/src/main/java/com/juick/api/controllers/PM.java b/juick-api/src/main/java/com/juick/api/controllers/PM.java
index c928a11e..ffbea4b5 100644
--- a/juick-api/src/main/java/com/juick/api/controllers/PM.java
+++ b/juick-api/src/main/java/com/juick/api/controllers/PM.java
@@ -2,8 +2,8 @@ package com.juick.api.controllers;
import com.juick.User;
import com.juick.api.ApiServer;
-import com.juick.api.util.HttpBadRequestException;
-import com.juick.api.util.HttpForbiddenException;
+import com.juick.server.util.HttpBadRequestException;
+import com.juick.server.util.HttpForbiddenException;
import com.juick.service.PMQueriesService;
import com.juick.service.UserService;
import com.juick.util.UserUtils;
diff --git a/juick-api/src/main/java/com/juick/api/controllers/Post.java b/juick-api/src/main/java/com/juick/api/controllers/Post.java
index 6d273f7a..53cfc3e5 100644
--- a/juick-api/src/main/java/com/juick/api/controllers/Post.java
+++ b/juick-api/src/main/java/com/juick/api/controllers/Post.java
@@ -2,10 +2,10 @@ package com.juick.api.controllers;
import com.juick.User;
import com.juick.api.ApiServer;
-import com.juick.api.util.HttpBadRequestException;
-import com.juick.api.util.HttpForbiddenException;
-import com.juick.api.util.HttpNotFoundException;
-import com.juick.api.util.HttpUtils;
+import com.juick.server.util.HttpBadRequestException;
+import com.juick.server.util.HttpForbiddenException;
+import com.juick.server.util.HttpNotFoundException;
+import com.juick.server.util.HttpUtils;
import com.juick.service.MessagesService;
import com.juick.service.SubscriptionService;
import com.juick.service.UserService;
diff --git a/juick-api/src/main/java/com/juick/api/controllers/Subscriptions.java b/juick-api/src/main/java/com/juick/api/controllers/Subscriptions.java
index 42be9903..b93ec1f3 100644
--- a/juick-api/src/main/java/com/juick/api/controllers/Subscriptions.java
+++ b/juick-api/src/main/java/com/juick/api/controllers/Subscriptions.java
@@ -2,8 +2,8 @@ package com.juick.api.controllers;
import com.juick.Message;
import com.juick.User;
-import com.juick.api.util.HttpBadRequestException;
-import com.juick.api.util.HttpForbiddenException;
+import com.juick.server.util.HttpBadRequestException;
+import com.juick.server.util.HttpForbiddenException;
import com.juick.service.MessagesService;
import com.juick.service.SubscriptionService;
import com.juick.service.UserService;
diff --git a/juick-api/src/main/java/com/juick/api/controllers/Users.java b/juick-api/src/main/java/com/juick/api/controllers/Users.java
index 396a716c..d6035cf2 100644
--- a/juick-api/src/main/java/com/juick/api/controllers/Users.java
+++ b/juick-api/src/main/java/com/juick/api/controllers/Users.java
@@ -1,8 +1,8 @@
package com.juick.api.controllers;
import com.juick.User;
-import com.juick.api.util.HttpForbiddenException;
-import com.juick.api.util.HttpNotFoundException;
+import com.juick.server.util.HttpForbiddenException;
+import com.juick.server.util.HttpNotFoundException;
import com.juick.service.UserService;
import com.juick.util.UserUtils;
import com.juick.util.WebUtils;
diff --git a/juick-api/src/main/java/com/juick/api/util/HttpBadRequestException.java b/juick-api/src/main/java/com/juick/api/util/HttpBadRequestException.java
deleted file mode 100644
index 3a42e999..00000000
--- a/juick-api/src/main/java/com/juick/api/util/HttpBadRequestException.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.juick.api.util;
-
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.ResponseStatus;
-
-/**
- * Created by vt on 24/11/2016.
- */
-@ResponseStatus(value = HttpStatus.BAD_REQUEST)
-public class HttpBadRequestException extends RuntimeException {
-
-}
diff --git a/juick-api/src/main/java/com/juick/api/util/HttpForbiddenException.java b/juick-api/src/main/java/com/juick/api/util/HttpForbiddenException.java
deleted file mode 100644
index d8f4ddf3..00000000
--- a/juick-api/src/main/java/com/juick/api/util/HttpForbiddenException.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.juick.api.util;
-
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.ResponseStatus;
-
-/**
- * Created by vt on 24/11/2016.
- */
-@ResponseStatus(value = HttpStatus.FORBIDDEN)
-public class HttpForbiddenException extends RuntimeException {
-
-}
diff --git a/juick-api/src/main/java/com/juick/api/util/HttpNotFoundException.java b/juick-api/src/main/java/com/juick/api/util/HttpNotFoundException.java
deleted file mode 100644
index 14f34cf0..00000000
--- a/juick-api/src/main/java/com/juick/api/util/HttpNotFoundException.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.juick.api.util;
-
-import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.ResponseStatus;
-
-/**
- * Created by vt on 24/11/2016.
- */
-@ResponseStatus(value = HttpStatus.NOT_FOUND)
-public class HttpNotFoundException extends RuntimeException {
-
-}
diff --git a/juick-api/src/main/java/com/juick/api/util/HttpUtils.java b/juick-api/src/main/java/com/juick/api/util/HttpUtils.java
deleted file mode 100644
index ca75eae7..00000000
--- a/juick-api/src/main/java/com/juick/api/util/HttpUtils.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Juick
- * Copyright (C) 2008-2011, Ugnich Anton
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package com.juick.api.util;
-
-import org.apache.commons.codec.digest.DigestUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.UUID;
-
-/**
- *
- * @author Ugnich Anton
- */
-public class HttpUtils {
- private static final Logger logger = LoggerFactory.getLogger(HttpUtils.class);
-
- public static String receiveMultiPartFile(MultipartFile attach, String tmpDir) {
- if (attach !=null && !attach.isEmpty()) {
- String partname = attach.getOriginalFilename();
- if (partname != null && partname.length() > 0) {
- String attachmentType = partname.substring(partname.length() - 3).toLowerCase();
- if (attachmentType.equals("jpg") || attachmentType.equals("peg") || attachmentType.equals("png")) {
- if (attachmentType.equals("peg")) {
- attachmentType = "jpg";
- }
- String attachmentFName = DigestUtils.md5Hex(UUID.randomUUID().toString()) + "." + attachmentType;
- try {
- Files.write(Paths.get(tmpDir, attachmentFName),
- attach.getBytes());
- return attachmentFName;
- } catch (IOException e) {
- logger.warn("file receive error", e);
- }
- }
- }
- }
- return "";
- }
- public static String downloadImage(URL url) throws Exception {
- String attachmentFName = null;
- Exception ex = null;
-
- InputStream is = null;
- FileOutputStream fos = null;
- try {
- URLConnection urlConn = url.openConnection();
- is = urlConn.getInputStream();
- String mime = urlConn.getContentType();
-
- String attachmentType;
- if (mime != null && mime.equals("image/jpeg")) {
- attachmentType = "jpg";
- } else if (mime != null && mime.equals("image/png")) {
- attachmentType = "png";
- } else {
- throw new Exception("Wrong file type");
- }
-
- attachmentFName = UUID.randomUUID().toString() + "." + attachmentType;
- fos = new FileOutputStream("/var/www/juick.com/i/tmp/" + attachmentFName);
- byte[] buffer = new byte[10240];
- int len;
- while ((len = is.read(buffer)) > 0) {
- fos.write(buffer, 0, len);
- }
- } catch (Exception e) {
- ex = e;
- attachmentFName = null;
- } finally {
- try {
- if (is != null) {
- is.close();
- }
- } finally {
- if (fos != null) {
- fos.close();
- }
- }
- }
-
- if (ex != null) {
- throw ex;
- } else {
- return attachmentFName;
- }
- }
-}
diff --git a/juick-api/src/test/java/com/juick/api/tests/MessagesTests.java b/juick-api/src/test/java/com/juick/api/tests/MessagesTests.java
index e0f9b840..9f74c00d 100644
--- a/juick-api/src/test/java/com/juick/api/tests/MessagesTests.java
+++ b/juick-api/src/test/java/com/juick/api/tests/MessagesTests.java
@@ -38,6 +38,7 @@ import static org.mockito.Mockito.when;
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.httpBasic;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.options;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
/**
@@ -173,12 +174,10 @@ public class MessagesTests {
@Test
public void homeTestWithMessagesAndRememberMe() throws Exception {
- String ugnichName = "ugnich";
- String uginchPassword = "MyPassw0rd!";
String msgText = "Привет, я - Угнич";
String hash = "12345678";
- User user = getUser(1, ugnichName, uginchPassword);
+ User user = getUser(1, ugnichName, ugnichPassword);
Message msg = getMessage(user, msgText);
when(userService.getUIDbyName(ugnichName))
@@ -198,7 +197,7 @@ public class MessagesTests {
mockMvc.perform(
get("/home")
- .with(httpBasic(ugnichName, uginchPassword)))
+ .with(httpBasic(ugnichName, ugnichPassword)))
.andExpect(status().isOk())
.andReturn();
@@ -211,11 +210,8 @@ public class MessagesTests {
}
@Test
- public void homeTestWithMEssagesAndSimpleCors() throws Exception {
- String ugnichName = "ugnich";
- String uginchPassword = "MyPassw0rd!";
-
- User user = getUser(1, ugnichName, uginchPassword);
+ public void homeTestWithMessagesAndSimpleCors() throws Exception {
+ User user = getUser(1, ugnichName, ugnichPassword);
Message msg = getMessage(user, null);
when(userService.getFullyUserByName(ugnichName))
@@ -229,7 +225,7 @@ public class MessagesTests {
mockMvc.perform(
get("/home")
- .with(httpBasic(ugnichName, uginchPassword))
+ .with(httpBasic(ugnichName, ugnichPassword))
.header("Origin", "http://api.example.net"))
.andExpect(status().isOk())
.andExpect(header().string("Access-Control-Allow-Origin", "*"));
@@ -237,16 +233,13 @@ public class MessagesTests {
@Test
public void homeTestWithPreflightCors() throws Exception {
- String ugnichName = "ugnich";
- String uginchPassword = "MyPassw0rd!";
-
- User user = getUser(1, ugnichName, uginchPassword);
+ User user = getUser(1, ugnichName, ugnichPassword);
when(userService.getFullyUserByName(ugnichName))
.thenReturn(user);
mockMvc.perform(
options("/home")
- .with(httpBasic(ugnichName, uginchPassword))
+ .with(httpBasic(ugnichName, ugnichPassword))
.header("Origin", "http://api.example.net")
.header("Access-Control-Request-Method", "POST")
.header("Access-Control-Request-Headers", "X-PINGOTHER, Content-Type"))
@@ -291,4 +284,11 @@ public class MessagesTests {
.andExpect(jsonPath("$", hasSize(1)))
.andExpect(jsonPath("$[0].messages", is(5)));
}
+ @Test
+ public void postWithReferer() throws Exception {
+ mockMvc.perform(post("/post")
+ .param("body", "yo")
+ .with(httpBasic(ugnichName, ugnichPassword)))
+ .andExpect(status().isOk());
+ }
}