Author: scottbw
Date: Wed May 30 14:57:53 2012
New Revision: 1344292
URL: http://svn.apache.org/viewvc?rev=1344292&view=rev
Log:
Added support for participant role information to REST API - see WOOKIE-66
Modified:
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/ParticipantsControllerTest.java
incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java
incubator/wookie/trunk/src/org/apache/wookie/helpers/ParticipantHelper.java
Modified:
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/ParticipantsControllerTest.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/ParticipantsControllerTest.java?rev=1344292&r1=1344291&r2=1344292&view=diff
==============================================================================
---
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/ParticipantsControllerTest.java
(original)
+++
incubator/wookie/trunk/src-tests/org/apache/wookie/tests/functional/ParticipantsControllerTest.java
Wed May 30 14:57:53 2012
@@ -23,6 +23,7 @@ import org.apache.commons.httpclient.Htt
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.DeleteMethod;
+import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -50,6 +51,19 @@ public class ParticipantsControllerTest
response.indexOf("</identifier>"));
post.releaseConnection();
}
+
+ @AfterClass
+ public static void tearDown() throws HttpException, IOException{
+ HttpClient client = new HttpClient();
+ DeleteMethod post = new
DeleteMethod(TEST_PARTICIPANTS_SERVICE_URL_VALID);
+ post.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
+ + WIDGET_ID_VALID
+ +
"&userid=test&shareddatakey=participantstest&participant_id=80");
+ client.executeMethod(post);
+ int code = post.getStatusCode();
+ assertEquals(200, code);
+ post.releaseConnection();
+ }
/**
* Tests adding and then getting a participant
@@ -294,5 +308,46 @@ public class ParticipantsControllerTest
assertEquals(400, code);
post.releaseConnection();
}
+
+ /**
+ * Tests adding and then getting a participant who is also the Host
+ *
+ * @throws HttpException
+ * @throws IOException
+ */
+ @Test
+ public void addHost() throws HttpException, IOException {
+
+ //
+ // Create a new participant
+ //
+ HttpClient client = new HttpClient();
+ PostMethod post = new PostMethod(TEST_PARTICIPANTS_SERVICE_URL_VALID);
+ post.setQueryString("api_key="
+ + API_KEY_VALID
+ + "&widgetid="
+ + WIDGET_ID_VALID
+ +
"&userid=test&shareddatakey=participantstest&participant_id=80&participant_display_name=bob&participant_role=host&participant_thumbnail_url=http://www.test.org");
+ client.executeMethod(post);
+ int code = post.getStatusCode();
+ assertEquals(201, code);
+ post.releaseConnection();
+
+ //
+ // Now lets GET it to make sure it was added OK
+ //
+ client = new HttpClient();
+ GetMethod get = new GetMethod(TEST_PARTICIPANTS_SERVICE_URL_VALID);
+ get.setQueryString("api_key=" + API_KEY_VALID + "&widgetid="
+ + WIDGET_ID_VALID + "&userid=test&shareddatakey=participantstest");
+ client.executeMethod(get);
+ code = get.getStatusCode();
+ assertEquals(200, code);
+ String response = get.getResponseBodyAsString();
+ assertTrue(response
+ .contains("<participant id=\"80\" display_name=\"bob\"
thumbnail_url=\"http://www.test.org\" role=\"host\" />"));
+ get.releaseConnection();
+
+ }
}
Modified:
incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java?rev=1344292&r1=1344291&r2=1344292&view=diff
==============================================================================
---
incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java
(original)
+++
incubator/wookie/trunk/src/org/apache/wookie/controller/ParticipantsController.java
Wed May 30 14:57:53 2012
@@ -105,6 +105,7 @@ public class ParticipantsController exte
String participantId = request.getParameter("participant_id");
//$NON-NLS-1$
String participantDisplayName =
request.getParameter("participant_display_name"); //$NON-NLS-1$
String participantThumbnailUrl =
request.getParameter("participant_thumbnail_url"); //$NON-NLS-1$
+ String participantRole =
request.getParameter("participant_role");
// Check required params
if (participantId == null || participantId.trim().equals("")) {
@@ -112,7 +113,7 @@ public class ParticipantsController exte
throw new InvalidParametersException();
}
- if (new SharedContext(instance).addParticipant(participantId,
participantDisplayName, participantThumbnailUrl)){
+ if (new SharedContext(instance).addParticipant(participantId,
participantDisplayName, participantThumbnailUrl, participantRole)){
Notifier.notifyWidgets(session, instance,
Notifier.PARTICIPANTS_UPDATED);
_logger.debug("added user to widget instance: " +
participantId);
return true;
Modified:
incubator/wookie/trunk/src/org/apache/wookie/helpers/ParticipantHelper.java
URL:
http://svn.apache.org/viewvc/incubator/wookie/trunk/src/org/apache/wookie/helpers/ParticipantHelper.java?rev=1344292&r1=1344291&r2=1344292&view=diff
==============================================================================
--- incubator/wookie/trunk/src/org/apache/wookie/helpers/ParticipantHelper.java
(original)
+++ incubator/wookie/trunk/src/org/apache/wookie/helpers/ParticipantHelper.java
Wed May 30 14:57:53 2012
@@ -102,6 +102,7 @@ public class ParticipantHelper {
element.setAttribute("id", participant.getParticipantId());
element.setAttribute("display_name",
participant.getParticipantDisplayName());
element.setAttribute("thumbnail_url",
participant.getParticipantThumbnailUrl());
+ if (participant.getRole() != null) element.setAttribute("role",
participant.getRole());
return element;
}
@@ -116,6 +117,7 @@ public class ParticipantHelper {
obj.put("participant_id", participant.getParticipantId());
obj.put("participant_display_name",
participant.getParticipantDisplayName());
obj.put("participant_thumbnail_url",
participant.getParticipantThumbnailUrl());
+ if (participant.getRole() != null) obj.put("participant_role",
participant.getRole());
return obj;
}