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; }
public function testGetUrlFormatsAUrl() { $request = new Request(); $request->setHost('http://example.com'); $request->setResource('/resource/123'); $this->assertEquals($request->getUrl(), 'http://example.com/resource/123'); }
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); }
/** * 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(); }
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]); } }
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; }