changeset 39:870553e92e3e

create getUserConsensusStatus action
author one
date Thu, 04 Oct 2012 01:39:44 +0900
parents a2abe67d7c7a
children 1d5c086e069b
files app/controllers/Claim.java app/models/ClaimModel.java conf/routes target/scala-2.9.1/cache/compile/compile test/RequestTest.java
diffstat 5 files changed, 57 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/app/controllers/Claim.java	Thu Oct 04 01:05:19 2012 +0900
+++ b/app/controllers/Claim.java	Thu Oct 04 01:39:44 2012 +0900
@@ -6,6 +6,7 @@
 import models.ClaimModel;
 import models.NodeModel;
 import models.TPGraph;
+import models.UserModel;
 
 import com.tinkerpop.blueprints.Graph;
 import com.tinkerpop.blueprints.Vertex;
@@ -76,6 +77,21 @@
 		return created();
 	}
 	
+	public static Result getUserConsensusStatus(String id, String name) {
+		TPGraph tpGraph = TPGraph.getInstance();
+		Graph graph = tpGraph.getGraph();
+		ClaimModel claim = new ClaimModel(graph.getVertex(id));
+		if (claim.getVertex() == null) {
+			return badRequest("Claim id "+id+" does not exist");
+		}
+		UserModel user = new UserModel(graph.getVertex(name));
+		if (user.getVertex() == null) {
+			return badRequest("User "+name+" does not exist");
+		}
+		ObjectNode result = claim.getUserRequestStatus(user);
+		return ok(result);
+	}
+	
 	
 	@BodyParser.Of(BodyParser.Json.class)
 	public static Result createMention(String mentionType, String id) {
@@ -116,7 +132,7 @@
 		Graph graph = tpGraph.getGraph();
 		Vertex claimV = graph.getVertex(id); 
 		if (claimV == null) {
-			badRequest("Claim id "+id+" is not found.");
+			badRequest("Claim id "+id+" is not exist.");
 		}
 		ClaimModel claim = new ClaimModel(claimV);
 		ObjectNode claimInfo = claim.getSimpleClaimInfo();
@@ -130,7 +146,7 @@
 		Graph graph = tpGraph.getGraph();
 		Vertex v = graph.getVertex(id);
 		if (v == null) { 
-			return badRequest("Consensus id "+ id +" is not found.");
+			return badRequest("Consensus id "+ id +" is not exist.");
 		}
 		ClaimModel consensusRoot = new ClaimModel(v);
 		ObjectNode resultEntity = consensusRoot.getClaimInfoTraverse();
--- a/app/models/ClaimModel.java	Thu Oct 04 01:05:19 2012 +0900
+++ b/app/models/ClaimModel.java	Thu Oct 04 01:39:44 2012 +0900
@@ -78,6 +78,22 @@
 		return getInfoArray(L_REQUEST);
 	}
 	
+	public ObjectNode getUserRequestStatus(UserModel user) {
+		GremlinPipeline<Vertex,Edge> pipeEdge = new GremlinPipeline<Vertex,Edge>();		
+		pipeEdge.start(vertex).outE(L_REQUEST);
+		ObjectNode info = Json.newObject();
+		for (Edge e : pipeEdge) {
+			GremlinPipeline<Edge,Vertex> pipeChildVertex = new GremlinPipeline<Edge,Vertex>();		
+			pipeChildVertex.start(e).inV();
+			Vertex childVertex = pipeChildVertex.next();
+			if (childVertex.getId() == user.getId()) {
+				info.put(STATUS, Json.toJson(e.getProperty(STATUS)));
+				break;
+			}
+		}		
+		return info;
+	}
+	
 	public Object[] getUsersIdAndStatus() {
 		GremlinPipeline<Vertex,Edge> pipeEdge = new GremlinPipeline<Vertex,Edge>();		
 		pipeEdge.start(vertex).outE(L_REQUEST);
--- a/conf/routes	Thu Oct 04 01:05:19 2012 +0900
+++ b/conf/routes	Thu Oct 04 01:39:44 2012 +0900
@@ -9,14 +9,14 @@
 GET		/users/requests/:name		controllers.User.getUserRequests(name: String)
 GET		/users/consensus/:name		controllers.User.getUserConsensus(name: String)
 GET		/users/claims/:name			controllers.User.getUserClaims(name: String)
-
 GET		/claims/browse/:id			controllers.Claim.getClaimInfo(id: String)
 GET		/claims/consensus/:id		controllers.Claim.getClaimTree(id: String)
+GET		/consensus/browse/:id		controllers.Claim.getClaimTree(id: String)
+GET		/claims/answer/:id/:name	controllers.Claim.getUserConsensusStatus(id: String, name: String)
 
 POST	/claims/create				controllers.Claim.crateClaim()
 POST	/claims/:mentionType/:id/create			controllers.Claim.createMention(mentionType: String ,id: String)
 POST	/claims/edit/:id			controllers.Claim.editClaim(id: String)
-GET		/consensus/browse/:id		controllers.Claim.getClaimTree(id: String)
 
 
 # test action
Binary file target/scala-2.9.1/cache/compile/compile has changed
--- a/test/RequestTest.java	Thu Oct 04 01:05:19 2012 +0900
+++ b/test/RequestTest.java	Thu Oct 04 01:39:44 2012 +0900
@@ -39,29 +39,34 @@
 			createMention(user2, users3, NodeModel.L_QUESTION, claimId);
 			createMention(user3, users3, NodeModel.L_REFUTATION, claimId);
 		}
-		JsonNode user2Claim =  getUserInfo(user2,"claims/");		
+		JsonNode user2Claim =  getUserInfo(user2,"claims/");
 		for (int i=0; i<user2Claim.size(); i++) {
-			int claimId = user2Claim.get(i).asInt();
+			int claimId = user2Claim.get(user2Claim.size()-1).asInt();
 			System.out.println("claimId = "+claimId);
 			String[] users = {user2};
 			createMention(user1, users, NodeModel.L_SUGGESTION, claimId);
 		}
 
-/*		
 		getUserInfo(user1,"requests/");
+		getUserInfo(user1,"claims/");
 		getUserInfo(user1,"consensus/");
+
+		getUserInfo(user2,"requests/");
 		getUserInfo(user2,"claims/");
-
 		getUserInfo(user2,"consensus/");
+		
 		getUserInfo(user3,"claims/");
 		getUserInfo(user3,"consensus/");
-*/
+
 		for (int i=0; i<user1Claim.size(); i++) {
-			int id = user1Claim.get(i).asInt(); 
+			int id = user1Claim.get(i).asInt();
 			getClaimTree(id); 
+			getUserConsensusStatus(id, user2);
 		}
 	}
 	
+	
+	
 	public static JsonNode editClaimInfo(String author, String[] users, int id) {
 		ObjectNode jobj =  createEditClaimParameter(author,users);
 		final String uri = SERVER_ROOT_URI + "/claims/edit/"+id;
@@ -85,6 +90,16 @@
 		return Json.parse(resStr);
 	}
 	
+	public static JsonNode getUserConsensusStatus(int id, String name) {
+		final String uri = SERVER_ROOT_URI + "/claims/answer/"+id+"/"+name;
+		WebResource resource = Client.create().resource(uri);
+		ClientResponse response = resource.get(ClientResponse.class);
+		System.out.println(String.format("GET on [%s], status code [%d]", uri, response.getStatus()));
+		String resStr = response.getEntity(String.class);
+		System.out.println(resStr);
+		return Json.parse(resStr);
+	}
+	
 	public static JsonNode getClaimInfo(int id) {
 		final String uri = SERVER_ROOT_URI + "/claims/browse/"+id;
 		WebResource resource = Client.create().resource(uri);