Exemple #1
0
 /**
  * Configure the expose object to filter out fields that have been explicitly requested by the client.
  * This is only applicable for a HTTP pull (GET) call. For configuring
  * @param  array        $requestOptions
  * @param  Request      $request
  * @return ExposeFields $this object instance
  */
 public function configurePullRequest(array $requestOptions, Request $request)
 {
     if (empty($this->route_expose)) {
         $exposeString = '';
         foreach ($requestOptions as $requestOption => $requestValue) {
             switch ($requestOption) {
                 case Configuration::EXPOSE_REQUEST_HEADER:
                     $exposeString = $request->getHeaders($requestValue);
                     break;
                 case Configuration::EXPOSE_REQUEST_PARAM:
                     $exposeString = $request->getParams($requestValue);
                     break;
                 case Configuration::EXPOSE_REQUEST_PARAM_GET:
                     $exposeString = $request->getQuery($requestValue);
                     break;
                 case Configuration::EXPOSE_REQUEST_PARAM_POST:
                     $exposeString = $request->getPost($requestValue);
                     break;
             }
         }
         if (!empty($exposeString)) {
             $requestedExposure = $this->parseExposeString($exposeString);
             $this->filterRequestedExpose($requestedExposure, $this->fields);
             $this->fields = $requestedExposure;
         }
     }
     return $this;
 }
 /**
  * Uses configuration options to determine whether this writer instance is the media type expected by the client
  * @param array $configOptions - configuration options for content detection
  * @param Request $request - request object
  * @return boolean $result
  */
 public final function isExpectedContent(array $configOptions, Request $request)
 {
     foreach ($configOptions as $detectContentOption => $detectContentValue) {
         switch ($detectContentOption) {
             case 1:
                 // HTTP Header
                 $headers = explode(',', $request->getHeaders($detectContentValue));
                 foreach ($headers as $headerEntry) {
                     if (false !== ($pos = strpos($headerEntry, ';'))) {
                         $headerEntry = substr($headerEntry, 0, $pos);
                     }
                     // See if the header matches for this writer
                     if (in_array(trim($headerEntry), $this->getMatchableAcceptHeaders())) {
                         return true;
                     }
                 }
                 break;
             case 2:
                 // Extension
                 // See if an extension has been supplied
                 $ext = $request->getExtension();
                 if (!empty($ext) && in_array($request->getExtension(), $this->getMatchableExtensions())) {
                     return true;
                 }
                 break;
             case 3:
                 // Parameter
                 // Inspect the request object for a "format" parameter
                 if (in_array($request->getQuery($detectContentValue), $this->getMatchableFormatParams())) {
                     return true;
                 }
                 break;
         }
     }
     return false;
 }