public static function getRawRequest()
 {
     $request = new Request();
     $request->method = $_SERVER['REQUEST_METHOD'];
     $request->ip = $_SERVER['REMOTE_ADDR'];
     $request->format = 'html';
     $request->setResource(self::stripQueryString($_SERVER['REQUEST_URI']));
     $request->get = $_GET;
     $request->post = $_POST;
     if ($request->method == Methods::POST || $request->method == Methods::PUT) {
         $request->input = file_get_contents('php://input');
         if ($request->method == Methods::POST) {
             $request->post = $_POST;
         } else {
             $request->put = self::getPutParameters($request->input);
         }
     }
     $request->headers = self::getHttpRequestHeaders();
     $request->accepts = new Accepts($request->headers);
     $request->username = @$_SERVER['PHP_AUTH_USER'];
     $request->password = @$_SERVER['PHP_AUTH_PW'];
     $request->cookies = $_COOKIE;
     $request->isAjax = isset($request->headers['X_REQUESTED_WITH']) && $request->headers['X_REQUESTED_WITH'] == 'XMLHttpRequest';
     return $request;
 }
Example #2
0
 public function testGetUrlFormatsAUrl()
 {
     $request = new Request();
     $request->setHost('http://example.com');
     $request->setResource('/resource/123');
     $this->assertEquals($request->getUrl(), 'http://example.com/resource/123');
 }
Example #3
0
 function testFindFailOnMethodSingleRoute()
 {
     $this->node->addRoute('test', $this->routes['MethodA'], '');
     $request = new Request();
     $request->method = Methods::POST;
     $request->setResource('/controller/methoda/');
     $routeResult = $this->node->findRouteFor($request);
     $this->assertTrue($routeResult->routeExists);
     $this->assertFalse($routeResult->methodIsSupported);
     $this->assertEquals($routeResult->acceptableMethods, $this->routes['MethodA']->methods);
 }
Example #4
0
 /**
  * Recess PHP Framework Entry Point
  * @param Request $request The raw Request.
  * @package recess
  * @static 
  */
 public static function main(Request $request, IPolicy $policy, RtNode $routes, array $plugins = array())
 {
     static $callDepth = 0;
     static $calls = array();
     $callDepth++;
     $calls[] = $request;
     if ($callDepth > 3) {
         print_r($calls);
         die('Forwarding loop in main?');
     }
     $request = $policy->preprocess($request);
     $controller = $policy->getControllerFor($request, $routes);
     $response = $controller->serve($request);
     $view = $policy->getViewFor($response);
     ob_start();
     $view->respondWith($response);
     if ($response instanceof ForwardingResponse) {
         $forwardRequest = new Request();
         $forwardRequest->setResource($response->forwardUri);
         $forwardRequest->method = Methods::GET;
         if (isset($response->context)) {
             $forwardRequest->get = $response->context;
         }
         $forwardRequest->accepts = $response->request->accepts;
         $forwardRequest->cookies = $response->request->cookies;
         $forwardRequest->username = $response->request->username;
         $forwardRequest->password = $response->request->password;
         $cookies = $response->getCookies();
         if (is_array($cookies)) {
             foreach ($response->getCookies() as $cookie) {
                 $forwardRequest->cookies[$cookie->name] = $cookie->value;
             }
         }
         Recess::main($forwardRequest, $policy, $routes, $plugins);
     }
     ob_end_flush();
 }
Example #5
0
 public function createConsignment(ConsignmentRequest $consignmentRequest)
 {
     $recipient = $consignmentRequest->getRecipient();
     if ($recipient == null) {
         $recipient = new Recipient();
     }
     $labelsRequest = $consignmentRequest->getLabelsRequest();
     $consignmentArray = array('transport_service_id' => $consignmentRequest->getTransportServiceId(), 'address_state' => $recipient->getCountry(), 'register_branch_id' => $consignmentRequest->getRegisterBranchId(), 'destination_branch_id' => $consignmentRequest->getDestinationBranchId(), 'order_number' => $consignmentRequest->getOrderNumber(), 'partner_consignment_id' => $consignmentRequest->getPartnerConsignmentId(), 'parcel_count' => $consignmentRequest->getParcelCount(), 'weight' => $consignmentRequest->getWeight(), 'cash_on_delivery' => $consignmentRequest->getCashOnDelivery(), 'insurance' => $consignmentRequest->getInsurance(), 'stated_price' => $consignmentRequest->getStatedPrice(), 'currency' => $consignmentRequest->getCurrency(), 'variable' => $consignmentRequest->getValiable(), 'password' => $consignmentRequest->getPassword(), 'customer_name' => $recipient->getName(), 'customer_surname' => $recipient->getSurname(), 'company_name' => $recipient->getCompany(), 'customer_phone' => $recipient->getPhone(), 'customer_email' => $recipient->getEmail(), 'address_street' => $recipient->getStreet(), 'address_town' => $recipient->getTown(), 'address_zip' => $recipient->getZip(), 'allow_card_payment' => $consignmentRequest->getAllowCardPayment() ? 1 : 0, 'require_full_age' => $consignmentRequest->getRequireFullAge() ? 1 : 0, 'note' => $consignmentRequest->getNote());
     if (isset($labelsRequest)) {
         $consignmentArray['labels'] = array('type' => $labelsRequest->getType(), 'first_position' => $labelsRequest->getFirstPosition(), 'labels_per_page' => $labelsRequest->getLabelsPerPage());
     }
     $request = new Request($this->apiUrl, $this->shopId, $this->apiKey);
     $request->setType('POST');
     $request->setResource(self::CONSIGNMENT_RESOURCE);
     $request->setData($consignmentArray);
     $response = $request->getResponse();
     if ($response->isError()) {
         $this->errors = $response->getErrors();
         return false;
     } else {
         $data = $response->getData();
         return new Consignment($data[0]);
     }
 }
Example #6
0
 protected function forceFormatFromResourceString(Request $request)
 {
     $lastPartIndex = count($request->resourceParts) - 1;
     if ($lastPartIndex < 0) {
         return $request;
     }
     $lastPart = $request->resourceParts[$lastPartIndex];
     $lastDotPosition = strrpos($lastPart, Library::dotSeparator);
     if ($lastDotPosition !== false) {
         $format = substr($lastPart, $lastDotPosition + 1);
         if ($format !== '') {
             $mime = MimeTypes::preferredMimeTypeFor($format);
             if ($mime !== false) {
                 $request->accepts->forceFormat($format);
                 $request->format = $format;
                 $request->setResource(substr($request->resource, 0, strrpos($request->resource, Library::dotSeparator)));
             }
         }
     }
     return $request;
 }