31 lines
786 B
PHP
31 lines
786 B
PHP
<?php
|
|
|
|
namespace App\Actions\UserApplications;
|
|
|
|
use App\Models\User;
|
|
use App\Models\UserApplication;
|
|
use Illuminate\Support\Arr;
|
|
|
|
class CreateUserApplication
|
|
{
|
|
/**
|
|
* @param array{name: string} $validated
|
|
* @return array{application: UserApplication, plain_text_key: string}
|
|
*/
|
|
public function handle(User $user, array $validated): array
|
|
{
|
|
$plainTextKey = UserApplication::generatePlainTextKey();
|
|
|
|
$application = UserApplication::query()->create([
|
|
'key_hash' => UserApplication::hashKey($plainTextKey),
|
|
'name' => Arr::get($validated, 'name'),
|
|
'user_id' => $user->id,
|
|
]);
|
|
|
|
return [
|
|
'application' => $application,
|
|
'plain_text_key' => $plainTextKey,
|
|
];
|
|
}
|
|
}
|