src/Dto/Authorization/AuthorizationHeaderDto.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Dto\Authorization;
  3. use Symfony\Component\HttpFoundation\Request;
  4. class AuthorizationHeaderDto
  5. {
  6.     private string $language;
  7.     private string $name;
  8.     private string $provider;
  9.     private int $timestamp;
  10.     private string $token;
  11.     private string $versionNumber;
  12.     public function __construct(
  13.         string $language,
  14.         string $name,
  15.         string $provider,
  16.         int    $timestamp,
  17.         string $versionNumber,
  18.         string $token
  19.     )
  20.     {
  21.         $this->language $language;
  22.         $this->name $name;
  23.         $this->provider $provider;
  24.         $this->timestamp $timestamp;
  25.         $this->token $token;
  26.         $this->versionNumber $versionNumber;
  27.     }
  28.     /**
  29.      * @param string $language
  30.      * @param string $name
  31.      * @param string $provider
  32.      * @param int $timestamp
  33.      * @param string $versionNumber
  34.      * @param string $token
  35.      * @return static
  36.      */
  37.     public static function generateFromStrings(
  38.         string $language,
  39.         string $name,
  40.         string $provider,
  41.         int    $timestamp,
  42.         string $versionNumber,
  43.         string $token
  44.     ): self
  45.     {
  46.         return new self(
  47.             $language,
  48.             $name,
  49.             $provider,
  50.             $timestamp,
  51.             $token,
  52.             $versionNumber
  53.         );
  54.     }
  55.     /**
  56.      * @param Request $request
  57.      * @return static
  58.      */
  59.     public static function generateFromRequest(
  60.         Request $request
  61.     ): self
  62.     {
  63.         $headers $request->headers;
  64.         return new self(
  65.             $headers->get("App-Language"),
  66.             $headers->get("App-Name"),
  67.             $headers->get("App-Provider"),
  68.             $headers->get("App-Timestamp"),
  69.             $headers->get("App-Version"),
  70.             $headers->get("X-Bearer-Token")
  71.         );
  72.     }
  73.     /**
  74.      * @return string
  75.      */
  76.     public function getLanguage(): string
  77.     {
  78.         return substr($this->language02); // fr_FR => fr
  79.     }
  80.     /**
  81.      * @return string
  82.      */
  83.     public function getName(): string
  84.     {
  85.         return $this->name;
  86.     }
  87.     /**
  88.      * @return string
  89.      */
  90.     public function getProvider(): string
  91.     {
  92.         return $this->provider;
  93.     }
  94.     /**
  95.      * @return int
  96.      */
  97.     public function getTimestamp(): int
  98.     {
  99.         return $this->timestamp;
  100.     }
  101.     /**
  102.      * @return string
  103.      */
  104.     public function getToken(): string
  105.     {
  106.         return $this->token;
  107.     }
  108.     /**
  109.      * @return string
  110.      */
  111.     public function getVersionNumber(): string
  112.     {
  113.         return $this->versionNumber;
  114.     }
  115. }