annotate app/controllers/Claim.java @ 45:0e8b6eda0a0e

commit
author one
date Thu, 04 Oct 2012 06:54:33 +0900
parents 4321d97da830
children 9645bfb49603
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11
6aa0452a7f9f add controllers/Claim.java
one
parents:
diff changeset
1 package controllers;
6aa0452a7f9f add controllers/Claim.java
one
parents:
diff changeset
2
13
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
3 import org.codehaus.jackson.JsonNode;
29
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
4 import org.codehaus.jackson.node.ObjectNode;
13
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
5
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
6 import models.ClaimModel;
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
7 import models.NodeModel;
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
8 import models.TPGraph;
39
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
9 import models.UserModel;
13
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
10
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
11 import com.tinkerpop.blueprints.Graph;
28
7112b826a53a modified RequestTest.java
one
parents: 25
diff changeset
12 import com.tinkerpop.blueprints.Vertex;
13
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
13
29
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
14 import play.libs.Json;
13
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
15 import play.mvc.BodyParser;
11
6aa0452a7f9f add controllers/Claim.java
one
parents:
diff changeset
16 import play.mvc.Controller;
13
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
17 import play.mvc.Result;
11
6aa0452a7f9f add controllers/Claim.java
one
parents:
diff changeset
18
6aa0452a7f9f add controllers/Claim.java
one
parents:
diff changeset
19 public class Claim extends Controller {
6aa0452a7f9f add controllers/Claim.java
one
parents:
diff changeset
20
13
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
21 @BodyParser.Of(BodyParser.Json.class)
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
22 public static Result crateClaim() {
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
23 JsonNode json = request().body().asJson();
18
one
parents: 17
diff changeset
24 String author = json.findPath(NodeModel.L_AUTHOR).getTextValue(); // Author
16
7cdc9d19834f modified createClaim
one
parents: 13
diff changeset
25 TPGraph tpGraph = TPGraph.getInstance();
7cdc9d19834f modified createClaim
one
parents: 13
diff changeset
26 Graph graph = tpGraph.getGraph();
34
one
parents: 33
diff changeset
27 if ( graph.getVertex(author) == null) {
41
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
28 return badRequest("Author "+ author + "does not exist.");
34
one
parents: 33
diff changeset
29 }
16
7cdc9d19834f modified createClaim
one
parents: 13
diff changeset
30 JsonNode toulmin = json.findPath(NodeModel.TOULMIN);
34
one
parents: 33
diff changeset
31 if (toulmin.findPath(NodeModel.TITLE) == null) {
18
one
parents: 17
diff changeset
32 return badRequest("Please set title");
34
one
parents: 33
diff changeset
33 }
16
7cdc9d19834f modified createClaim
one
parents: 13
diff changeset
34 JsonNode usersJson = json.get(NodeModel.USERS); // Users (class JsonNode)
37
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
35 if (usersJson == null) {
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
36 return badRequest("Please set users");
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
37 }
13
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
38 String type = json.findPath(NodeModel.TYPE).getTextValue(); // Type (majority|unanimously)
20
34ea98c5a18c modified UserModel/getEdgeInUser
one
parents: 18
diff changeset
39 ClaimModel newClaim = new ClaimModel(graph.addVertex(null));
34ea98c5a18c modified UserModel/getEdgeInUser
one
parents: 18
diff changeset
40 tpGraph.setLabelToAuthor(newClaim, author);
18
one
parents: 17
diff changeset
41 newClaim.setClaimProperties(toulmin, type);
one
parents: 17
diff changeset
42 String[] users = toStringArray(usersJson);
37
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
43 tpGraph.setLabelStatusToUsers(newClaim, users, NodeModel.L_REQUEST, NodeModel.UNKNOWN);
13
9b677755cb93 create action Claim/createClaim
one
parents: 12
diff changeset
44 tpGraph.setLabelToRootClaim(newClaim);
20
34ea98c5a18c modified UserModel/getEdgeInUser
one
parents: 18
diff changeset
45 return created();
18
one
parents: 17
diff changeset
46 }
one
parents: 17
diff changeset
47
25
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
48 @BodyParser.Of(BodyParser.Json.class)
35
one
parents: 34
diff changeset
49 public static Result editClaim(String id) {
one
parents: 34
diff changeset
50 JsonNode json = request().body().asJson();
one
parents: 34
diff changeset
51 String author = json.findPath(NodeModel.L_AUTHOR).getTextValue(); // Author
one
parents: 34
diff changeset
52 TPGraph tpGraph = TPGraph.getInstance();
one
parents: 34
diff changeset
53 Graph graph = tpGraph.getGraph();
36
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
54 ClaimModel claim = new ClaimModel(graph.getVertex(id));
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
55 if ( claim.getVertex() == null ) {
41
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
56 return badRequest("Claim id "+ id + " does not exist.");
36
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
57 }
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
58 if ( !claim.getAuthorId().equals(author)) {
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
59 return badRequest("Wrong Author.");
35
one
parents: 34
diff changeset
60 }
one
parents: 34
diff changeset
61 if ( graph.getVertex(author) == null) {
41
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
62 return badRequest("Author "+ author + " does not exist.");
35
one
parents: 34
diff changeset
63 }
one
parents: 34
diff changeset
64 JsonNode toulmin = json.findPath(NodeModel.TOULMIN);
one
parents: 34
diff changeset
65 if (toulmin.findPath(NodeModel.TITLE) == null) {
one
parents: 34
diff changeset
66 return badRequest("Please set title");
one
parents: 34
diff changeset
67 }
36
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
68 JsonNode usersJson = json.get(NodeModel.USERS);
37
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
69 if (usersJson == null) {
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
70 return badRequest("Please set users");
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
71 }
35
one
parents: 34
diff changeset
72 String type = json.findPath(NodeModel.TYPE).getTextValue(); // Type (majority|unanimously)
one
parents: 34
diff changeset
73 claim.setClaimProperties(toulmin, type);
36
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
74 Object[] users = toStringObject(usersJson);
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
75 claim.editRequestsEdgeUsers(users);
35
one
parents: 34
diff changeset
76 tpGraph.setLabelToRootClaim(claim);
one
parents: 34
diff changeset
77 return created();
one
parents: 34
diff changeset
78 }
one
parents: 34
diff changeset
79
39
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
80 public static Result getUserConsensusStatus(String id, String name) {
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
81 TPGraph tpGraph = TPGraph.getInstance();
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
82 Graph graph = tpGraph.getGraph();
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
83 ClaimModel claim = new ClaimModel(graph.getVertex(id));
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
84 if (claim.getVertex() == null) {
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
85 return badRequest("Claim id "+id+" does not exist");
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
86 }
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
87 UserModel user = new UserModel(graph.getVertex(name));
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
88 if (user.getVertex() == null) {
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
89 return badRequest("User "+name+" does not exist");
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
90 }
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
91 ObjectNode result = claim.getUserRequestStatus(user);
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
92 return ok(result);
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
93 }
870553e92e3e create getUserConsensusStatus action
one
parents: 38
diff changeset
94
41
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
95 public static Result updateUserConsensusStatus(String id, String name, String status) {
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
96 if ( !(status.equals(NodeModel.AGREED)
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
97 ||status.equals(NodeModel.FAILED)
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
98 ||status.equals(NodeModel.UNKNOWN)
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
99 ||status.equals(NodeModel.PEND))) {
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
100 return badRequest("Wrong status type.");
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
101 }
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
102 TPGraph tpGraph = TPGraph.getInstance();
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
103 Graph graph = tpGraph.getGraph();
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
104 ClaimModel claim = new ClaimModel(graph.getVertex(id));
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
105 if (claim.getVertex() == null) {
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
106 return badRequest("Claim id "+id+" does not exist");
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
107 }
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
108 UserModel user = new UserModel(graph.getVertex(name));
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
109 if (user.getVertex() == null) {
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
110 return badRequest("User "+name+" does not exist");
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
111 }
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
112 claim.updateUserRequestStatus(claim, user, status);
42
4321d97da830 modified updateUserConsensusStatus
one
parents: 41
diff changeset
113 claim.computeAndUpdateStatus();
41
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
114 return created();
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
115 }
35
one
parents: 34
diff changeset
116
one
parents: 34
diff changeset
117 @BodyParser.Of(BodyParser.Json.class)
25
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
118 public static Result createMention(String mentionType, String id) {
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
119 if ( !(mentionType.equals(NodeModel.L_QUESTION)
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
120 ||mentionType.equals(NodeModel.L_REFUTATION)
38
a2abe67d7c7a fix createMention action bug
one
parents: 37
diff changeset
121 ||mentionType.equals(NodeModel.L_SUGGESTION))) {
25
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
122 return badRequest("Wrong mention type.");
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
123 }
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
124 JsonNode json = request().body().asJson();
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
125 String author = json.findPath(NodeModel.L_AUTHOR).getTextValue(); // Author
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
126 TPGraph tpGraph = TPGraph.getInstance();
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
127 Graph graph = tpGraph.getGraph();
34
one
parents: 33
diff changeset
128 if ( graph.getVertex(author) == null) {
41
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
129 return badRequest("Author "+ author + " does not exist.");
34
one
parents: 33
diff changeset
130 }
25
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
131 JsonNode toulmin = json.findPath(NodeModel.TOULMIN);
34
one
parents: 33
diff changeset
132 if (toulmin.findPath(NodeModel.TITLE) == null) {
25
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
133 return badRequest("Please set title");
34
one
parents: 33
diff changeset
134 }
25
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
135 JsonNode usersJson = json.get(NodeModel.USERS); // Users (class JsonNode)
37
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
136 if (usersJson == null) {
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
137 return badRequest("Please set users");
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
138 }
25
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
139 String type = json.findPath(NodeModel.TYPE).getTextValue(); // Type (majority|unanimously)
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
140 ClaimModel newClaim = new ClaimModel(graph.addVertex(null));
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
141 tpGraph.setLabelToAuthor(newClaim, author);
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
142 newClaim.setClaimProperties(toulmin, type);
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
143 String[] users = toStringArray(usersJson);
37
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
144 tpGraph.setLabelStatusToUsers(newClaim, users, NodeModel.L_REQUEST, NodeModel.UNKNOWN);
25
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
145 tpGraph.setLabelToRootClaim(newClaim);
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
146 ClaimModel mentionV = new ClaimModel(graph.getVertex(id));
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
147 tpGraph.setLabelMention(mentionV, newClaim, mentionType);
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
148 return created();
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
149 }
42
4321d97da830 modified updateUserConsensusStatus
one
parents: 41
diff changeset
150
29
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
151 public static Result getClaimInfo(String id) {
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
152 TPGraph tpGraph = TPGraph.getInstance();
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
153 Graph graph = tpGraph.getGraph();
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
154 Vertex claimV = graph.getVertex(id);
34
one
parents: 33
diff changeset
155 if (claimV == null) {
41
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
156 badRequest("Claim id "+id+" does not exist.");
34
one
parents: 33
diff changeset
157 }
29
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
158 ClaimModel claim = new ClaimModel(claimV);
31
995be14b30a2 create ClaimModel/getUsersIdAndStatus method
one
parents: 30
diff changeset
159 ObjectNode claimInfo = claim.getSimpleClaimInfo();
29
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
160 ObjectNode result = Json.newObject();
35
one
parents: 34
diff changeset
161 result.put("message", claimInfo);
29
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
162 return ok(result);
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
163 }
fbb232e78422 create getClaimInfo
one
parents: 28
diff changeset
164
28
7112b826a53a modified RequestTest.java
one
parents: 25
diff changeset
165 public static Result getClaimTree(String id) {
7112b826a53a modified RequestTest.java
one
parents: 25
diff changeset
166 TPGraph tpGraph = TPGraph.getInstance();
7112b826a53a modified RequestTest.java
one
parents: 25
diff changeset
167 Graph graph = tpGraph.getGraph();
7112b826a53a modified RequestTest.java
one
parents: 25
diff changeset
168 Vertex v = graph.getVertex(id);
32
be6bbd4967e4 create createMentions
one
parents: 31
diff changeset
169 if (v == null) {
41
f78442777849 create updateRequestStatus
one
parents: 39
diff changeset
170 return badRequest("Consensus id "+ id +" does not exist.");
32
be6bbd4967e4 create createMentions
one
parents: 31
diff changeset
171 }
28
7112b826a53a modified RequestTest.java
one
parents: 25
diff changeset
172 ClaimModel consensusRoot = new ClaimModel(v);
31
995be14b30a2 create ClaimModel/getUsersIdAndStatus method
one
parents: 30
diff changeset
173 ObjectNode resultEntity = consensusRoot.getClaimInfoTraverse();
995be14b30a2 create ClaimModel/getUsersIdAndStatus method
one
parents: 30
diff changeset
174 return ok(resultEntity);
25
97b249d9fad1 fix infinite loop on getConsensus Action
one
parents: 20
diff changeset
175 }
35
one
parents: 34
diff changeset
176
36
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
177 private static Object[] toStringObject(JsonNode jsonNode) {
37
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
178 if (jsonNode == null) {
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
179 return null;
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
180 }
36
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
181 int length = jsonNode.size();
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
182 if (length == 0) {
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
183 return null;
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
184 }
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
185 Object[] userArray = new Object[length];
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
186 for (int i=0; i<length; i++ ) {
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
187 userArray[i] = jsonNode.get(i).getTextValue();
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
188 }
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
189 return userArray;
5f7fcdf98380 create editClaim
one
parents: 35
diff changeset
190 }
28
7112b826a53a modified RequestTest.java
one
parents: 25
diff changeset
191
18
one
parents: 17
diff changeset
192 private static String[] toStringArray(JsonNode jsonNode) {
37
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
193 if (jsonNode == null) {
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
194 return null;
bc3ac73320f9 fix const value FAILED from FAIL
one
parents: 36
diff changeset
195 }
18
one
parents: 17
diff changeset
196 int length = jsonNode.size();
34
one
parents: 33
diff changeset
197 if (length == 0) {
one
parents: 33
diff changeset
198 return null;
one
parents: 33
diff changeset
199 }
18
one
parents: 17
diff changeset
200 String[] userArray = new String[length];
one
parents: 17
diff changeset
201 for (int i=0; i<length; i++ ) {
one
parents: 17
diff changeset
202 userArray[i] = jsonNode.get(i).getTextValue();
one
parents: 17
diff changeset
203 }
one
parents: 17
diff changeset
204 return userArray;
12
ef434ebd64ae fix NodeModel.java
one
parents: 11
diff changeset
205 }
ef434ebd64ae fix NodeModel.java
one
parents: 11
diff changeset
206
11
6aa0452a7f9f add controllers/Claim.java
one
parents:
diff changeset
207
6aa0452a7f9f add controllers/Claim.java
one
parents:
diff changeset
208
6aa0452a7f9f add controllers/Claim.java
one
parents:
diff changeset
209
6aa0452a7f9f add controllers/Claim.java
one
parents:
diff changeset
210 }