You are here

public static function HttpExceptionNormalizer::getInfoUrl in JSON:API 8

Same name and namespace in other branches
  1. 8.2 src/Normalizer/HttpExceptionNormalizer.php \Drupal\jsonapi\Normalizer\HttpExceptionNormalizer::getInfoUrl()

Return a string to the common problem type.

@internal

Return value

string|null URL pointing to the specific RFC-2616 section. Or NULL if it is an HTTP status code that is defined in another RFC.

See also

https://www.drupal.org/project/jsonapi/issues/2832211#comment-11826234

9 calls to HttpExceptionNormalizer::getInfoUrl()
HttpExceptionNormalizer::buildErrorObjects in src/Normalizer/HttpExceptionNormalizer.php
Builds the normalized JSON API error objects for the response.
NodeTest::testGetIndividual in tests/src/Functional/NodeTest.php
Tests GETting an individual resource, plus edge cases to ensure good DX.
NodeTest::testPatchPath in tests/src/Functional/NodeTest.php
Tests PATCHing a node's path with and without 'create url aliases'.
ResourceResponseTestTrait::getAccessDeniedResponse in tests/src/Functional/ResourceResponseTestTrait.php
Gets a generic forbidden response.
ResourceTestBase::assertResourceErrorResponse in tests/src/Functional/ResourceTestBase.php
Asserts that a resource error response has the given message.

... See full list

File

src/Normalizer/HttpExceptionNormalizer.php, line 122

Class

HttpExceptionNormalizer
Normalizes an HttpException in compliance with the JSON API specification.

Namespace

Drupal\jsonapi\Normalizer

Code

public static function getInfoUrl($status_code) {

  // Depending on the error code we'll return a different URL.
  $url = 'http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html';
  $sections = [
    '100' => '#sec10.1.1',
    '101' => '#sec10.1.2',
    '200' => '#sec10.2.1',
    '201' => '#sec10.2.2',
    '202' => '#sec10.2.3',
    '203' => '#sec10.2.4',
    '204' => '#sec10.2.5',
    '205' => '#sec10.2.6',
    '206' => '#sec10.2.7',
    '300' => '#sec10.3.1',
    '301' => '#sec10.3.2',
    '302' => '#sec10.3.3',
    '303' => '#sec10.3.4',
    '304' => '#sec10.3.5',
    '305' => '#sec10.3.6',
    '307' => '#sec10.3.8',
    '400' => '#sec10.4.1',
    '401' => '#sec10.4.2',
    '402' => '#sec10.4.3',
    '403' => '#sec10.4.4',
    '404' => '#sec10.4.5',
    '405' => '#sec10.4.6',
    '406' => '#sec10.4.7',
    '407' => '#sec10.4.8',
    '408' => '#sec10.4.9',
    '409' => '#sec10.4.10',
    '410' => '#sec10.4.11',
    '411' => '#sec10.4.12',
    '412' => '#sec10.4.13',
    '413' => '#sec10.4.14',
    '414' => '#sec10.4.15',
    '415' => '#sec10.4.16',
    '416' => '#sec10.4.17',
    '417' => '#sec10.4.18',
    '500' => '#sec10.5.1',
    '501' => '#sec10.5.2',
    '502' => '#sec10.5.3',
    '503' => '#sec10.5.4',
    '504' => '#sec10.5.5',
    '505' => '#sec10.5.6',
  ];
  return empty($sections[$status_code]) ? NULL : $url . $sections[$status_code];
}