Further Drupal 8.6.4 changes. Some core files were not committed before a commit...
[yaffs-website] / web / core / modules / media / tests / modules / media_test_oembed / src / Controller / ResourceController.php
1 <?php
2
3 namespace Drupal\media_test_oembed\Controller;
4
5 use Symfony\Component\HttpFoundation\Request;
6 use Symfony\Component\HttpFoundation\Response;
7
8 /**
9  * Test controller returning oEmbed resources from Media's test fixtures.
10  */
11 class ResourceController {
12
13   /**
14    * Returns the contents of an oEmbed resource fixture.
15    *
16    * @param \Symfony\Component\HttpFoundation\Request $request
17    *   The request.
18    *
19    * @return \Symfony\Component\HttpFoundation\Response
20    *   The JSON response.
21    */
22   public function get(Request $request) {
23     $asset_url = $request->query->get('url');
24
25     $resources = \Drupal::state()->get(static::class, []);
26
27     $content = file_get_contents($resources[$asset_url]);
28     $response = new Response($content);
29     $response->headers->set('Content-Type', 'application/json');
30
31     return $response;
32   }
33
34   /**
35    * Maps an asset URL to a local fixture representing its oEmbed resource.
36    *
37    * @param string $asset_url
38    *   The asset URL.
39    * @param string $resource_path
40    *   The path of the oEmbed resource representing the asset.
41    */
42   public static function setResourceUrl($asset_url, $resource_path) {
43     $resources = \Drupal::state()->get(static::class, []);
44     $resources[$asset_url] = $resource_path;
45     \Drupal::state()->set(static::class, $resources);
46   }
47
48 }