aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/api/Messages.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick/api/Messages.java')
-rw-r--r--src/main/java/com/juick/api/Messages.java97
1 files changed, 65 insertions, 32 deletions
diff --git a/src/main/java/com/juick/api/Messages.java b/src/main/java/com/juick/api/Messages.java
index e242d05b..d86193f1 100644
--- a/src/main/java/com/juick/api/Messages.java
+++ b/src/main/java/com/juick/api/Messages.java
@@ -11,6 +11,7 @@ import com.juick.xmpp.Message;
import com.juick.xmpp.Stream;
import com.juick.xmpp.extensions.JuickMessage;
import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.util.StringUtils;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -28,37 +29,11 @@ public class Messages {
MessageSerializer messageSerializer = new MessageSerializer();
- enum MediaType {
- ALL("all"),
- PHOTO("photo"),
- VIDEO("video"),
- NONE("");
-
- private final String value;
-
- MediaType(final String value) {
- this.value = value;
- }
- public String getValue() {
- return value;
- }
-
- @Override
- public String toString() {
- return this.getValue();
- }
- }
-
public Messages(JdbcTemplate sql) {
this.sql = sql;
}
- public void doGetHome(HttpServletRequest request,
- HttpServletResponse response, int vuid)
- throws ServletException, IOException {
- int before_mid = Utils.parseInt(request.getParameter("before_mid"), 0);
-
- List<Integer> mids = MessagesQueries.getMyFeed(sql, vuid, before_mid);
+ void feedMessages(HttpServletRequest request, HttpServletResponse response, List<Integer> mids) throws IOException {
if (mids != null && !mids.isEmpty()) {
List<com.juick.Message> msgs = MessagesQueries.getMessages(sql, mids);
if (msgs != null && !msgs.isEmpty()) {
@@ -72,16 +47,74 @@ public class Messages {
}
}
+ public void doGetHome(HttpServletRequest request,
+ HttpServletResponse response, int vuid)
+ throws ServletException, IOException {
+ int before_mid = Utils.parseInt(request.getParameter("before_mid"), 0);
+
+ feedMessages(request, response, MessagesQueries.getMyFeed(sql, vuid, before_mid));
+
+ }
+
public void doGet(HttpServletRequest request,
HttpServletResponse response, int vuid)
throws ServletException, IOException {
- User user = UserQueries.getUserByName(sql, request.getParameter("uname"));
int before_mid = Utils.parseInt(request.getParameter("before_mid"), 0);
- int page = Utils.parseInt(request.getParameter("page"), 0);
- MediaType media = MediaType.valueOf(request.getParameter("media"));
- boolean popular = Boolean.valueOf(request.getParameter("popular"));
- Tag tag = TagQueries.getTag(sql, request.getParameter("tag"), false);
+ String uname = request.getParameter("uname");
+ String popular = request.getParameter("popular");
+ String media = request.getParameter("media");
+ String tag = request.getParameter("tag");
+ if (!StringUtils.isEmpty(uname)) {
+ User user = UserQueries.getUserByName(sql, uname);
+ if (user != null) {
+ if (!StringUtils.isEmpty(media)) {
+ feedMessages(request, response, MessagesQueries.getUserPhotos(sql, user.getUID(), 0, before_mid));
+ } else if (!StringUtils.isEmpty(tag)) {
+ Tag tagObject = TagQueries.getTag(sql, tag, false);
+ if (tagObject != null) {
+ feedMessages(request, response, MessagesQueries.getUserTag(sql, user.getUID(), tagObject.TID, 0, before_mid));
+ } else {
+ response.sendError(404);
+ }
+ } else {
+ feedMessages(request, response, MessagesQueries.getUserBlog(sql, user.getUID(), 0, before_mid));
+ }
+ } else {
+ response.sendError(404);
+ }
+ } else {
+ if (!StringUtils.isEmpty(popular)) {
+ feedMessages(request, response, MessagesQueries.getPopular(sql, before_mid));
+ } else if (!StringUtils.isEmpty(media)) {
+ feedMessages(request, response, MessagesQueries.getPhotos(sql, vuid, before_mid));
+ } else if (!StringUtils.isEmpty(tag)) {
+ Tag tagObject = TagQueries.getTag(sql, tag, false);
+ if (tagObject != null) {
+ feedMessages(request, response, MessagesQueries.getTag(sql, tagObject.TID, vuid, before_mid, 20));
+ } else {
+ response.sendError(404);
+ }
+ } else {
+ feedMessages(request, response, MessagesQueries.getAll(sql, vuid, before_mid));
+ }
+ }
+ }
+ public void doThreadGet(HttpServletRequest request, HttpServletResponse response, int vuid) throws IOException {
+ int mid = Utils.parseInt(request.getParameter("mid"), 0);
+ com.juick.Message msg = MessagesQueries.getMessage(sql, mid);
+ if (msg != null) {
+ if (!MessagesQueries.canViewThread(sql, mid, vuid)) {
+ response.sendError(403);
+ } else {
+ List<com.juick.Message> replies = MessagesQueries.getReplies(sql, mid);
+ replies.add(0, msg);
+ String json = messageSerializer.serializeList(replies);
+ Main.replyJSON(request, response, json);
+ }
+ } else {
+ response.sendError(404);
+ }
}
public void doGetRecommended(HttpServletRequest request,