aboutsummaryrefslogtreecommitdiff
path: root/juick-api/src/main/java/com/juick/api/Users.java
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2016-07-07 15:42:16 +0300
committerGravatar Vitaly Takmazov2016-07-07 15:42:16 +0300
commit20ca1d9e0c1b7b8a4822742f120d6c576454d0d9 (patch)
tree4a906f22bf4fec0d6a1b1589b7f761f2632cbe06 /juick-api/src/main/java/com/juick/api/Users.java
parente5c286017b59a0862f2ccc4d9f905d8a3b0008ac (diff)
reorganize project
Diffstat (limited to 'juick-api/src/main/java/com/juick/api/Users.java')
-rw-r--r--juick-api/src/main/java/com/juick/api/Users.java126
1 files changed, 126 insertions, 0 deletions
diff --git a/juick-api/src/main/java/com/juick/api/Users.java b/juick-api/src/main/java/com/juick/api/Users.java
new file mode 100644
index 00000000..e85c517a
--- /dev/null
+++ b/juick-api/src/main/java/com/juick/api/Users.java
@@ -0,0 +1,126 @@
+package com.juick.api;
+
+import com.juick.User;
+import com.juick.json.UserSerializer;
+import com.juick.server.UserQueries;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ *
+ * @author ugnich
+ */
+public class Users {
+
+ JdbcTemplate sql;
+
+ UserSerializer userSerializer = new UserSerializer();
+
+ public Users(JdbcTemplate sql) {
+ this.sql = sql;
+ }
+
+ public void doGetUsers(HttpServletRequest request,
+ HttpServletResponse response, int vuid)
+ throws ServletException, IOException {
+ List<com.juick.User> users = new ArrayList<>();
+
+ String punames[] = request.getParameterValues("uname");
+ if (punames != null) {
+ ArrayList<String> unames = new ArrayList<>(Arrays.asList(punames));
+ Iterator<String> i = unames.iterator();
+ while (i.hasNext()) {
+ if (!i.next().matches("^[a-zA-Z0-9\\-]{2,16}$")) {
+ i.remove();
+ }
+ }
+ if (!unames.isEmpty() && unames.size() < 20) {
+ users.addAll(UserQueries.getUsersByName(sql, unames));
+ }
+ }
+
+ String pjids[] = request.getParameterValues("jid");
+ if (pjids != null) {
+ List<String> jids = new ArrayList<>(Arrays.asList(pjids));
+ Iterator<String> ii = jids.iterator();
+ while (ii.hasNext()) {
+ if (!ii.next().matches("^[a-zA-Z0-9\\-\\_\\@\\.]{6,64}$")) {
+ ii.remove();
+ }
+ }
+ if (!jids.isEmpty() && jids.size() < 20) {
+ users.addAll(UserQueries.getUsersByJID(sql, jids));
+ }
+ }
+
+ if (!users.isEmpty()) {
+ String json = userSerializer.serializeList(users);
+ Main.replyJSON(request, response, json);
+ } else {
+ response.sendError(404);
+ }
+ }
+
+ public void doGetUserRead(HttpServletRequest request,
+ HttpServletResponse response, int vuid)
+ throws ServletException, IOException {
+ int uid = 0;
+ String uname = request.getParameter("uname");
+ if (uname == null) {
+ uid = vuid;
+ } else {
+ if (UserQueries.checkUserNameValid(uname)) {
+ com.juick.User u = UserQueries.getUserByName(sql, uname);
+ if (u != null && u.getUID() > 0) {
+ uid = u.getUID();
+ }
+ }
+ }
+
+ if (uid > 0) {
+ List<Integer> uids = UserQueries.getUserRead(sql, uid);
+ if (uids.size() > 0) {
+ List<com.juick.User> users = UserQueries.getUsersByID(sql, uids);
+ if (users.size() > 0) {
+ String json = userSerializer.serializeList(users);
+ Main.replyJSON(request, response, json);
+ return;
+ }
+ }
+ }
+ response.sendError(404);
+ }
+
+ public void doGetUserReaders(HttpServletRequest request,
+ HttpServletResponse response, int vuid)
+ throws ServletException, IOException {
+ int uid = 0;
+ String uname = request.getParameter("uname");
+ if (uname == null) {
+ uid = vuid;
+ } else {
+ if (UserQueries.checkUserNameValid(uname)) {
+ com.juick.User u = UserQueries.getUserByName(sql, uname);
+ if (u != null && u.getUID() > 0) {
+ uid = u.getUID();
+ }
+ }
+ }
+
+ if (uid > 0) {
+ List<User> users = UserQueries.getUserReaders(sql, uid);
+ String json = userSerializer.serializeList(users);
+ Main.replyJSON(request, response, json);
+ return;
+ }
+ response.sendError(404);
+ }
+}