Files
hado/core/app/Http/Controllers/Me/ProfileController.php

40 lines
1.1 KiB
PHP

<?php
namespace App\Http\Controllers\Me;
use App\Http\Controllers\Controller;
use App\Models\User;
use App\Presenters\ProfilePresenter;
use App\Users\ProfileUpdater;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Cache;
class ProfileController extends Controller
{
public function __construct(private readonly ProfileUpdater $profile) {}
public function show(Request $request): JsonResponse
{
return response()->json(ProfilePresenter::present($request->attributes->get('user')));
}
public function update(Request $request): JsonResponse
{
/** @var User $user */
$user = $request->attributes->get('user');
return response()->json(ProfilePresenter::present($this->profile->update($user, $request->all())));
}
public function heartbeat(Request $request): Response
{
/** @var User $user */
$user = $request->attributes->get('user');
Cache::put("heartbeat:{$user->id}", true, config('hado.web_heartbeat_ttl'));
return response()->noContent();
}
}