aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/api/Messages.java
blob: 548e816fbe9dbd69a51a0d752cbd237f4ca8af1f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package com.juick.api;

import com.juick.json.MessageSerializer;
import com.juick.server.MessagesQueries;
import com.juick.xmpp.JID;
import com.juick.xmpp.Message;
import com.juick.xmpp.Stream;
import com.juick.xmpp.extensions.JuickMessage;
import java.io.IOException;
import java.sql.Connection;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author ugnich
 */
public class Messages {

    Connection sql;
    
    MessageSerializer messageSerializer = new MessageSerializer();

    public Messages(Connection 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);

        ArrayList<Integer> mids = MessagesQueries.getMyFeed(sql, vuid, before_mid);
        if (mids != null && !mids.isEmpty()) {
            ArrayList<com.juick.Message> msgs = MessagesQueries.getMessages(sql, mids);
            if (msgs != null && !msgs.isEmpty()) {
                String json = messageSerializer.serializeList(msgs);
                Main.replyJSON(request, response, json);
            } else {
                response.sendError(404);
            }
        } else {
            response.sendError(404);
        }
    }

    public void doGetRecommended(HttpServletRequest request, HttpServletResponse response, int vuid) throws ServletException, IOException {
        int before_mid = Utils.parseInt(request.getParameter("before_mid"), 0);

        ArrayList<Integer> mids = MessagesQueries.getUserRecommendations(sql, vuid, before_mid);
        if (mids != null && !mids.isEmpty()) {
            ArrayList<com.juick.Message> msgs = MessagesQueries.getMessages(sql, mids);
            if (msgs != null && !msgs.isEmpty()) {
                String json = messageSerializer.serializeList(msgs);
                Main.replyJSON(request, response, json);
            } else {
                response.sendError(404);
            }
        } else {
            response.sendError(404);
        }
    }

    public void doSetPrivacy(HttpServletRequest request, HttpServletResponse response, Stream xmpp, int vuid) throws ServletException, IOException {
        int mid = Utils.parseInt(request.getParameter("mid"), 0);
        com.juick.User user = MessagesQueries.getMessageAuthor(sql, mid);
        if (user != null && user.UID == vuid && MessagesQueries.setMessagePrivacy(sql, mid)) {
            Main.replyJSON(request, response, "{\"status\":\"ok\"}");
        } else {
            response.sendError(400);
        }
    }

    public void doSetPopular(HttpServletRequest request, HttpServletResponse response, Stream xmpp) throws ServletException, IOException {
        int mid = Utils.parseInt(request.getParameter("mid"), 0);
        int popular = Utils.parseInt(request.getParameter("popular"), 0);

        if (mid > 0) {
            boolean ret = MessagesQueries.setMessagePopular(sql, mid, popular);

            if (ret && popular == 2) {
                try {
                    com.juick.Message m = MessagesQueries.getMessage(sql, mid);
                    if (m != null) {
                        Message msg = new Message();
                        msg.from = new JID("juick", "juick.com", null);
                        msg.to = new JID(null, "crosspost.juick.com", null);
                        JuickMessage jmsg = new JuickMessage(m);
                        jmsg.User.UID = 11574;
                        msg.childs.add(jmsg);

                        msg.to.Username = "twitter";
                        xmpp.send(msg);
                        msg.to.Username = "fb";
                        xmpp.send(msg);
                        msg.to.Username = "vk";
                        xmpp.send(msg);
                    } else {
                        throw new Exception("Message not found");
                    }
                } catch (Exception e) {
                    System.err.println("SETPOPULAR ERROR: " + e.toString());
                }
            }

            Main.replyJSON(request, response, "{\"status\":\"ok\"}");
        }
    }
}