feat: toggle media

This commit is contained in:
2025-11-29 14:29:46 +03:30
parent c9d442223c
commit 6912059469
2 changed files with 12 additions and 4 deletions
+11 -3
View File
@@ -239,12 +239,20 @@ public function destroy($id)
} }
// SAVE media // SAVE media
public function saveMedia($id) public function toggleSaveMedia($id)
{ {
auth()->user()->savedMedia()->syncWithoutDetaching([$id]); $user = auth()->user();
if ($user->savedMedia()->where('media_id', $id)->exists()) {
// already saved → unsave
$user->savedMedia()->detach($id);
return response()->json(['message' => 'Unsaved!']);
} else {
// not saved → save
$user->savedMedia()->attach($id);
return response()->json(['message' => 'Saved!']); return response()->json(['message' => 'Saved!']);
} }
}
// GET saved // GET saved
public function saved() public function saved()
+1 -1
View File
@@ -140,7 +140,7 @@
Route::post('/media/{id}', [MediaController::class, 'update']); Route::post('/media/{id}', [MediaController::class, 'update']);
Route::delete('/media/{id}', [MediaController::class, 'destroy']); Route::delete('/media/{id}', [MediaController::class, 'destroy']);
Route::get('/media/{id}', [MediaController::class, 'show']); Route::get('/media/{id}', [MediaController::class, 'show']);
Route::post('/media/{id}/save', [MediaController::class, 'saveMedia']); Route::post('/media/{id}/save', [MediaController::class, 'toggleSaveMedia']);
Route::get('/media/saved', [MediaController::class, 'saved']); Route::get('/media/saved', [MediaController::class, 'saved']);
Route::post('/media/{id}/note', [MediaController::class, 'storeNote']); Route::post('/media/{id}/note', [MediaController::class, 'storeNote']);