build: initialize RetroHub with Laravel, Inertia, Vue, and Horizon
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace App\Features\Settings\Repositories;
|
||||
|
||||
use App\Features\Settings\Models\SaveFile;
|
||||
use App\Features\Settings\Models\UserSetting;
|
||||
use App\Models\User;
|
||||
|
||||
class SettingsRepository
|
||||
{
|
||||
public function __construct(
|
||||
private SaveFile $saveFileModel,
|
||||
private UserSetting $userSettingModel
|
||||
) {}
|
||||
|
||||
public function getUserSaves(User $user)
|
||||
{
|
||||
return $this->saveFileModel
|
||||
->where('user_id', $user->id)
|
||||
->with('game')
|
||||
->get();
|
||||
}
|
||||
|
||||
public function getUserSettings(User $user)
|
||||
{
|
||||
return $this->userSettingModel
|
||||
->where('user_id', $user->id)
|
||||
->get();
|
||||
}
|
||||
|
||||
public function getSetting(User $user, string $key, mixed $default = null): mixed
|
||||
{
|
||||
$setting = $this->userSettingModel
|
||||
->where('user_id', $user->id)
|
||||
->where('setting_key', $key)
|
||||
->first();
|
||||
|
||||
return $setting?->setting_value ?? $default;
|
||||
}
|
||||
|
||||
public function setSetting(User $user, string $key, mixed $value): void
|
||||
{
|
||||
$this->userSettingModel->updateOrCreate(
|
||||
['user_id' => $user->id, 'setting_key' => $key],
|
||||
['setting_value' => $value]
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user