3 namespace Drupal\media_test_oembed\Controller;
5 use Symfony\Component\HttpFoundation\Request;
6 use Symfony\Component\HttpFoundation\Response;
9 * Test controller returning oEmbed resources from Media's test fixtures.
11 class ResourceController {
14 * Returns the contents of an oEmbed resource fixture.
16 * @param \Symfony\Component\HttpFoundation\Request $request
19 * @return \Symfony\Component\HttpFoundation\Response
22 public function get(Request $request) {
23 $asset_url = $request->query->get('url');
25 $resources = \Drupal::state()->get(static::class, []);
27 $content = file_get_contents($resources[$asset_url]);
28 $response = new Response($content);
29 $response->headers->set('Content-Type', 'application/json');
35 * Maps an asset URL to a local fixture representing its oEmbed resource.
37 * @param string $asset_url
39 * @param string $resource_path
40 * The path of the oEmbed resource representing the asset.
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);