mirror of
https://github.com/jikan-me/jikan-rest.git
synced 2025-02-20 11:23:35 +08:00
31 lines
830 B
PHP
31 lines
830 B
PHP
<?php
|
|
|
|
namespace App\Concerns;
|
|
|
|
use App\Http\HttpHelper;
|
|
use Illuminate\Http\Request;
|
|
use Spatie\LaravelData\Resolvers\DataFromSomethingResolver;
|
|
|
|
/**
|
|
* Helper trait for data transfer objects
|
|
*
|
|
* Ref: https://spatie.be/docs/laravel-data/v2/as-a-data-transfer-object/request-to-data-object#content-mapping-a-request-onto-a-data-object
|
|
*/
|
|
trait HasRequestFingerprint
|
|
{
|
|
protected ?string $fingerprint = null;
|
|
|
|
public static function fromRequest(Request $request): ?static
|
|
{
|
|
$result = app(DataFromSomethingResolver::class)
|
|
->withoutMagicalCreation()->execute(static::class, $request);
|
|
$result->fingerprint = HttpHelper::resolveRequestFingerprint($request);
|
|
return $result;
|
|
}
|
|
|
|
public function getFingerPrint(): string
|
|
{
|
|
return $this->fingerprint;
|
|
}
|
|
}
|