Files
monica/app/Helpers/UserHelper.php
T

40 lines
1.0 KiB
PHP

<?php
namespace App\Helpers;
use App\Models\User;
use App\Models\Vault;
use Illuminate\Support\Facades\Cache;
class UserHelper
{
/**
* Get the information about the contact linked to the given user, in the
* given vault.
*/
public static function getInformationAboutContact(User $user, Vault $vault): ?array
{
return Cache::store('array')
->remember("InformationAboutContact:{$user->id}:{$vault->id}", 5, fn () => self::internalGetInformationAboutContact($user, $vault));
}
private static function internalGetInformationAboutContact(User $user, Vault $vault): ?array
{
$contact = $user->getContactInVault($vault);
if (! $contact) {
return null;
}
return [
'id' => $contact->id,
'name' => $contact->name,
'avatar' => $contact->avatar,
'url' => route('contact.show', [
'vault' => $contact->vault_id,
'contact' => $contact->id,
]),
];
}
}