You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by ch...@apache.org on 2008/10/16 00:15:51 UTC

svn commit: r705076 - in /incubator/shindig/trunk/php/src/social: sample/JsonDbOpensocialService.php service/MessagesHandler.php service/RestRequestItem.php servlet/DataServiceServlet.php spi/MessagesService.php

Author: chabotc
Date: Wed Oct 15 15:15:51 2008
New Revision: 705076

URL: http://svn.apache.org/viewvc?rev=705076&view=rev
Log:
Messages are now working through the REST API too

Modified:
    incubator/shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php
    incubator/shindig/trunk/php/src/social/service/MessagesHandler.php
    incubator/shindig/trunk/php/src/social/service/RestRequestItem.php
    incubator/shindig/trunk/php/src/social/servlet/DataServiceServlet.php
    incubator/shindig/trunk/php/src/social/spi/MessagesService.php

Modified: incubator/shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php?rev=705076&r1=705075&r2=705076&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php (original)
+++ incubator/shindig/trunk/php/src/social/sample/JsonDbOpensocialService.php Wed Oct 15 15:15:51 2008
@@ -346,7 +346,7 @@
 		throw new SocialSpiException("Not implemented", ResponseError::$NOT_IMPLEMENTED);
 	}
 
-	public function createMessage($userId, $message, SecurityToken $token)
+	public function createMessage($userId, $appId, $message, $optionalMessageId, SecurityToken $token)
 	{
 		throw new SocialSpiException("Not implemented", ResponseError::$NOT_IMPLEMENTED);
 	}

Modified: incubator/shindig/trunk/php/src/social/service/MessagesHandler.php
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/social/service/MessagesHandler.php?rev=705076&r1=705075&r2=705076&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/social/service/MessagesHandler.php (original)
+++ incubator/shindig/trunk/php/src/social/service/MessagesHandler.php Wed Oct 15 15:15:51 2008
@@ -19,7 +19,7 @@
 
 class MessagesHandler extends DataRequestHandler {
 	
-	private static $MESSAGES_PATH = "/messages/{userId}/outbox/{msgId}";
+	private static $MESSAGES_PATH = "/messages/userId/outbox/msgId";
 	private $service;
 
 	public function __construct()
@@ -30,28 +30,32 @@
 
 	public function handleDelete(RequestItem $requestItem)
 	{
-		return new ResponseItem(NOT_IMPLEMENTED, "You can't delete messages", null);
+		throw new SocialSpiException("You can't delete messages", ResponseError::$NOT_IMPLEMENTED); 
 	}
 
 	public function handleGet(RequestItem $requestItem)
 	{
-		return new ResponseItem(NOT_IMPLEMENTED, "You can't retrieve messages", null);
-	}
-
-	public function handlePost(RequestItem $requestItem)
-	{
-		return new ResponseItem(NOT_IMPLEMENTED, "You can't edit messages", null);
+		throw new SocialSpiException("You can't retrieve messages", ResponseError::$NOT_IMPLEMENTED); 
 	}
 
 	/**
 	 * /messages/{groupId}/outbox/{msgId}
+	 * /messages/{groupId}/outbox
 	 *
 	 * @param RequestItem $requestItem
 	 * @return responseItem
 	 */
+	public function handlePost(RequestItem $requestItem)
+	{
+		$requestItem->applyUrlTemplate(self::$MESSAGES_PATH);
+		$userIds = $requestItem->getUsers();
+		$message = $requestItem->getParameter('message');
+		$optionalMessageId = $requestItem->getParameter('msgId');
+		return $this->service->createMessage($userIds[0], $requestItem->getAppId(), $message, $optionalMessageId, $requestItem->getToken());
+	}
+
 	public function handlePut(RequestItem $requestItem)
 	{
-		$requestItem->parseUrlWithTemplate(self::$MESSAGES_PATH);
-		return $this->service->createMessage($requestItem->getUser(), $requestItem->getPostData(), $requestItem->getToken());
+		$this->handlePost($requestItem);
 	}
 }

Modified: incubator/shindig/trunk/php/src/social/service/RestRequestItem.php
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/social/service/RestRequestItem.php?rev=705076&r1=705075&r2=705076&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/social/service/RestRequestItem.php (original)
+++ incubator/shindig/trunk/php/src/social/service/RestRequestItem.php Wed Oct 15 15:15:51 2008
@@ -77,6 +77,7 @@
 				break;
 			case DataServiceServlet::$MESSAGE_ROUTE:
 				$data = $this->inputConverter->convertMessages($this->postData);
+				$this->params['message'] = $data;
 				break;
 			default:
 				throw new Exception("Invalid or unknown service endpoint: $service");

Modified: incubator/shindig/trunk/php/src/social/servlet/DataServiceServlet.php
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/social/servlet/DataServiceServlet.php?rev=705076&r1=705075&r2=705076&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/social/servlet/DataServiceServlet.php (original)
+++ incubator/shindig/trunk/php/src/social/servlet/DataServiceServlet.php Wed Oct 15 15:15:51 2008
@@ -26,7 +26,7 @@
 	public static $PEOPLE_ROUTE = "people";
 	public static $ACTIVITY_ROUTE = "activities";
 	public static $APPDATA_ROUTE = "appdata";
-	public static $MESSAGE_ROUTE = "message";
+	public static $MESSAGE_ROUTE = "messages";
 
 	public function doGet()
 	{

Modified: incubator/shindig/trunk/php/src/social/spi/MessagesService.php
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/php/src/social/spi/MessagesService.php?rev=705076&r1=705075&r2=705076&view=diff
==============================================================================
--- incubator/shindig/trunk/php/src/social/spi/MessagesService.php (original)
+++ incubator/shindig/trunk/php/src/social/spi/MessagesService.php Wed Oct 15 15:15:51 2008
@@ -19,15 +19,21 @@
 
 interface MessagesService {
 
-	/**  $message is an array containing the following fields:
+	/**  
+	 * Send a message to the chosen recipients.
+	 * $userId - the sender
+	 * $appId - the application Id
+	 * $message - an array containing the following fields:
 	 *  [id] => {msgid}
 	 *  [title] => You have an invitation from Joe
 	 *  [body] => Click <a href="http://app.example.org/invites/{msgid}">here</a> to review your invitation.
 	 *  [recipients] => Array
 	 *      (
-	 *          [0] => example.org:AD38B3886625AAF
-	 *          [1] => example.org:997638BAA6F25AD
+	 *          [0] => UserId1
+	 *          [1] => UserId2
 	 *      )
+	 * $optionalMessageId - if the REST action was a PUT containing an message id this is filled in
+	 * $token - the security token
 	 */
-	public function createMessage($userId, $message, SecurityToken $token);
+	public function createMessage($userId, $appId, $message, $optionalMessageId, SecurityToken $token);
 }