Statistics
| Branch: | Tag: | Revision:

root / src / gr / grnet / pithos / web / client / Invitations.java @ b75210b5

History | View | Annotate | Download (1.7 kB)

1 fd1da2eb Christos Stathis
package gr.grnet.pithos.web.client;
2 fd1da2eb Christos Stathis
3 6b48912a Christos Stathis
import java.util.ArrayList;
4 fd1da2eb Christos Stathis
import java.util.Date;
5 6b48912a Christos Stathis
import java.util.List;
6 fd1da2eb Christos Stathis
7 5300a16e Christos Stathis
import com.google.gwt.http.client.Response;
8 6b48912a Christos Stathis
import com.google.gwt.json.client.JSONArray;
9 5300a16e Christos Stathis
import com.google.gwt.json.client.JSONObject;
10 5300a16e Christos Stathis
import com.google.gwt.json.client.JSONParser;
11 5300a16e Christos Stathis
import com.google.gwt.json.client.JSONValue;
12 5300a16e Christos Stathis
13 fd1da2eb Christos Stathis
import gr.grnet.pithos.web.client.foldertree.Resource;
14 fd1da2eb Christos Stathis
15 fd1da2eb Christos Stathis
public class Invitations extends Resource {
16 fd1da2eb Christos Stathis
17 5300a16e Christos Stathis
        private int invitationsLeft = 0;
18 fd1da2eb Christos Stathis
        
19 6b48912a Christos Stathis
        private List<Invitation> sentInvitations = new ArrayList<Invitation>();
20 6b48912a Christos Stathis
        
21 fd1da2eb Christos Stathis
        @Override
22 fd1da2eb Christos Stathis
        public Date getLastModified() {
23 fd1da2eb Christos Stathis
                return null;
24 fd1da2eb Christos Stathis
        }
25 fd1da2eb Christos Stathis
26 fd1da2eb Christos Stathis
        public int getInvitationsLeft() {
27 fd1da2eb Christos Stathis
                return invitationsLeft;
28 fd1da2eb Christos Stathis
        }
29 fd1da2eb Christos Stathis
30 5300a16e Christos Stathis
        public static Invitations createFromResponse(Response response) {
31 5300a16e Christos Stathis
                Invitations result = new Invitations();
32 5300a16e Christos Stathis
                result.populate(response);
33 5300a16e Christos Stathis
                return result;
34 5300a16e Christos Stathis
        }
35 5300a16e Christos Stathis
36 5300a16e Christos Stathis
        private void populate(Response response) {
37 5300a16e Christos Stathis
        JSONValue json = JSONParser.parseStrict(response.getText());
38 5300a16e Christos Stathis
        JSONObject o = json.isObject();
39 6b48912a Christos Stathis
        if (o != null) {
40 5300a16e Christos Stathis
                invitationsLeft = unmarshallInt(o, "invitations");
41 6b48912a Christos Stathis
                JSONArray sent = o.get("sent").isArray();
42 6b48912a Christos Stathis
                if (sent != null) {
43 6b48912a Christos Stathis
                        for (int i=0; i<sent.size(); i++) {
44 6b48912a Christos Stathis
                                JSONObject ob = sent.get(i).isObject();
45 6b48912a Christos Stathis
                                if (ob != null) {
46 6b48912a Christos Stathis
                                        boolean accepted = unmarshallBoolean(ob, "is_accepted");
47 6b48912a Christos Stathis
                                        String email = unmarshallString(ob, "email");
48 6b48912a Christos Stathis
                                        String realname = unmarshallString(ob, "realname");
49 6b48912a Christos Stathis
                                        Invitation inv = new Invitation(accepted, realname, email);
50 6b48912a Christos Stathis
                                        sentInvitations.add(inv);
51 6b48912a Christos Stathis
                                }
52 6b48912a Christos Stathis
                        }
53 6b48912a Christos Stathis
                }
54 6b48912a Christos Stathis
        }
55 6b48912a Christos Stathis
        }
56 6b48912a Christos Stathis
57 6b48912a Christos Stathis
        public List<Invitation> getSentInvitations() {
58 6b48912a Christos Stathis
                return sentInvitations;
59 5300a16e Christos Stathis
        }
60 5300a16e Christos Stathis
61 fd1da2eb Christos Stathis
}