[Fusionforge-commits] r12256 - branches/Branch_5_1/src/plugins/oslc/include/oslc-zend/application/controllers

Olivier Berger olberger at libremir.placard.fr.eu.org
Thu Feb 10 16:13:44 CET 2011


Author: olberger
Date: 2011-02-10 16:13:44 +0100 (Thu, 10 Feb 2011)
New Revision: 12256

Modified:
   branches/Branch_5_1/src/plugins/oslc/include/oslc-zend/application/controllers/FusionForgeCmController.php
Log:
small refactoring on content type verification code.

Modified: branches/Branch_5_1/src/plugins/oslc/include/oslc-zend/application/controllers/FusionForgeCmController.php
===================================================================
--- branches/Branch_5_1/src/plugins/oslc/include/oslc-zend/application/controllers/FusionForgeCmController.php	2011-02-10 15:13:36 UTC (rev 12255)
+++ branches/Branch_5_1/src/plugins/oslc/include/oslc-zend/application/controllers/FusionForgeCmController.php	2011-02-10 15:13:44 UTC (rev 12256)
@@ -45,9 +45,18 @@
 			'application/x-oslc-disc-service-provider-catalog+xml' => 'xml',
 		 	'application/xml' => 'xml',
 			'application/x-oslc-disc-service-provider-catalog+json' => 'json',
-			'application/json' => 'json'
+			'application/json' => 'json',
+			'application/rdf+xml' => 'xml'
 		),
 	);
+	private $actionMimeType;
+	
+	public function setActionMimeType($action) {
+		if(!isset($this->actionMimeType)) {
+			$this->actionMimeType = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $action);
+		}
+	}
+	
 	/**
 	 * Init FusionForge REST controller.
 	 */
@@ -75,9 +84,11 @@
 			$accept = $req->getHeader('Accept');
 		}
 		
-		$mime = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $action);
-		if($mime) {
-		  $accept = $mime;
+		// Set the mime type for action.
+		$this->setActionMimeType($action);
+		
+		if(isset($this->actionMimeType)) {
+		  $accept = $this->actionMimeType;
 		}
 		
 		// determine output format
@@ -406,8 +417,8 @@
 	public function readresourceAction() {
 		
 		$params = $this->getRequest()->getParams();
-		$content_type = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $this->getRequest()->getActionName());
-		if (! $content_type) {
+		//$content_type = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $this->getRequest()->getActionName());
+		if (!isset($this->actionMimeType)) {
 			$this->_forward('UnknownAcceptType','error');
 			return;
 		}
@@ -434,7 +445,7 @@
 				$this->view->{$field} = $value;
 			}
 			
-			$this->getResponse()->setHeader('Content-Type', $content_type);
+			$this->getResponse()->setHeader('Content-Type', $this->actionMimeType);
 		}
 		else{
 			$this->view->missing_resource = $identifier;
@@ -443,16 +454,16 @@
 	}
 	
 	public function readresourcecollectionAction()	{
-
-		$content_type = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $this->getRequest()->getActionName());
-		if (! $content_type) {
+		$req = $this->getRequest();
+		$params = $req->getParams();
+		
+		//$content_type = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $this->getRequest()->getActionName());
+		// TODO: raise the correct error code according to the specs.
+		if (!isset($this->actionMimeType)) {
 		  //			print_r("error");
-		  throw new NotAcceptableException("Accept header ".$this->getRequest()->getHeader('Accept')." not supported!");
+		  throw new NotAcceptableException("Accept header ".$req->getHeader('Accept')." not supported!");
 		  return;
 		}
-		//exit;
-		$req = $this->getRequest();
-		$params = $req->getParams();
 		
 		// load the model. Will fetch requested change requests from the db.
 		$params = $this->oslc->init($params);
@@ -481,30 +492,29 @@
 		}
 
 		//print_r($this->view);
-		$this->getResponse()->setHeader('Content-Type', $content_type);
+		$this->getResponse()->setHeader('Content-Type', $this->actionMimeType);
 		
 	}
 	
 	/**
-	 * Handle OSLC services catalog access (http://open-services.net/bin/view/Main/OslcServiceProviderCatalogV1)
+	 * Handle OSLC Core services provider catalog access (http://open-services.net/bin/view/Main/OslcCoreSpecification)
 	 * Will show the list of prjects.
 	 * 
 	 */
 	public function oslcservicecatalogAction() {
 		
-		$content_type = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $this->getRequest()->getActionName());
-		if (! $content_type) {
+		//$content_type = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $this->getRequest()->getActionName());
+		if (! isset($this->actionMimeType)) {
 		  //			print_r("error");
 		  $this->_forward('UnknownAcceptType','error');
 		  return;
 		}
-		
-		// each project will generate its own service description
+		// each project is considered as a service Provider.
 		$proj_arr = $this->oslc->getProjectsList();
 		
 		$this->view->projects = $proj_arr;
 		
-		$this->getResponse()->setHeader('Content-Type', $content_type);
+		$this->getResponse()->setHeader('Content-Type', $this->actionMimeType);
 	}
 	
 	/**
@@ -513,8 +523,8 @@
 	 * where x is a project id.
 	 */
 	public function oslcservicecatalogprojectAction() {
-		$content_type = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $this->getRequest()->getActionName());
-		if (! $content_type) {
+		//$content_type = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $this->getRequest()->getActionName());
+		if (! isset($this->actionMimeType)) {
 			$this->_forward('UnknownAcceptType','error');
 			return;
 		}
@@ -528,7 +538,7 @@
 		$this->view->project = $project;
 		$this->view->trackers = $trackers;
 		
-		$this->getResponse()->setHeader('Content-Type', $content_type);
+		$this->getResponse()->setHeader('Content-Type', $this->actionMimeType);
 	}
 
 	/**
@@ -536,8 +546,8 @@
 	 * Handles OSLC-CM service document access.
 	 */
 	public function oslccmservicedocumentAction() {
-		$content_type = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $this->getRequest()->getActionName());
-		if (! $content_type) {
+		//$this->actionMimeType = parent::checkSupportedActionMimeType(self::$supportedAcceptMimeTypes, $this->getRequest()->getActionName());
+		if (! isset($this->actionMimeType)) {
 			$this->_forward('UnknownAcceptType','error');
 			return;
 		}
@@ -548,7 +558,7 @@
 		$this->view->project = $params['oslc-cm-service'];
 		$this->view->tracker = $params['tracker'];
 
-		$this->getResponse()->setHeader('Content-Type', $content_type);
+		$this->getResponse()->setHeader('Content-Type', $this->actionMimeType);
 
 	}
 




More information about the Fusionforge-commits mailing list