You are here

TempStoreController.php in Bootstrap Styles 1.0.x

File

src/Controller/TempStoreController.php
View source
<?php

namespace Drupal\bootstrap_styles\Controller;

use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Drupal\user\PrivateTempStoreFactory;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;

/**
 * Set or get any value to bootstrap_styles temp store.
 */
class TempStoreController extends ControllerBase {

  /**
   * The tempstore service.
   *
   * @var \Drupal\Core\TempStore\PrivateTempStoreFactory
   */
  protected $tempStore;

  /**
   * Constructs a TempStoreController object.
   *
   * @param \Drupal\Core\TempStore\PrivateTempStoreFactory $temp_store_factory
   *   The tempstore service.
   */
  public function __construct(PrivateTempStoreFactory $temp_store_factory) {
    $this->tempStore = $temp_store_factory
      ->get('bootstrap_styles');
  }

  /**
   * {@inheritdoc}
   */
  public static function create(ContainerInterface $container) {
    return new static($container
      ->get('user.private_tempstore'));
  }

  /**
   * Set a tempStore value by key.
   *
   * @param \Symfony\Component\HttpFoundation\Request $request
   *   The request of the page.
   *
   * @return \Symfony\Component\HttpFoundation\JsonResponse
   *   The JSON response.
   */
  public function set(Request $request) {
    $key = $request->request
      ->get('key');
    $value = $request->request
      ->get('value');
    $this->tempStore
      ->set($key, $value);

    // Return an empty JSON response.
    return new JsonResponse();
  }

  /**
   * Get temp store value by key.
   *
   * @return \Symfony\Component\HttpFoundation\JsonResponse
   *   The JSON response.
   */
  public function get(Request $request) {
    $key = $request->request
      ->get('key');
    $response = $this->tempStore
      ->get($key);
    return new JsonResponse($response);
  }

}

Classes

Namesort descending Description
TempStoreController Set or get any value to bootstrap_styles temp store.