Update BookmarkController

This commit is contained in:
Daniel Supernault 2023-01-19 06:37:24 -07:00
parent 02b6df54cc
commit ef56f92c3d
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -7,6 +7,7 @@ use App\Status;
use Auth; use Auth;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Services\BookmarkService; use App\Services\BookmarkService;
use App\Services\FollowerService;
class BookmarkController extends Controller class BookmarkController extends Controller
{ {
@ -24,6 +25,16 @@ class BookmarkController extends Controller
$profile = Auth::user()->profile; $profile = Auth::user()->profile;
$status = Status::findOrFail($request->input('item')); $status = Status::findOrFail($request->input('item'));
abort_if(!in_array($status->scope, ['public', 'unlisted', 'private']), 404);
if($status->scope == 'private') {
abort_if(
$profile->id !== $status->profile_id && !FollowerService::follows($profile->id, $status->profile_id),
404,
'Error: Cannot bookmark private posts from accounts you do not follow.'
);
}
$bookmark = Bookmark::firstOrCreate( $bookmark = Bookmark::firstOrCreate(
['status_id' => $status->id], ['profile_id' => $profile->id] ['status_id' => $status->id], ['profile_id' => $profile->id]
); );