Detaylı Backend & Frontend Analizi
25 Aralık 2025
JavaScript kodu /api/muzibu/playlists/{id}/add-album
endpoint'ine istek atıyor, ancak bu endpoint backend'de TANIMLI DEĞİL!
async addAlbumToPlaylists() {
const promises = this.selectedPlaylists.map(playlistId =>
fetch(`/api/muzibu/playlists/${playlistId}/add-album`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]')?.content || ''
},
body: JSON.stringify({ album_id: this.contentId })
}).then(res => res.json())
);
...
}
Route::middleware(['web', 'auth'])->group(function () {
Route::post('/{id}/add-song', [PlaylistController::class, 'addSong']);
// ❌ add-album route YOK!
Route::delete('/{id}/remove-song/{songId}', ...);
...
});
Route::post('/{id}/add-song', [PlaylistController::class, 'addSong'])->name('api.muzibu.playlists.add-song');
Route::post('/{id}/add-album', [PlaylistController::class, 'addAlbum'])->name('api.muzibu.playlists.add-album');
/**
* Add all songs from album to playlist
*/
public function addAlbum(Request $request, int $id): JsonResponse
{
try {
$request->validate([
'album_id' => 'required|integer|exists:muzibu_albums,album_id',
]);
$userId = auth()->id();
$albumId = $request->input('album_id');
// Get album with songs
$album = Album::with('songs')->findOrFail($albumId);
$songIds = $album->songs->where('is_active', 1)->pluck('song_id')->toArray();
if (empty($songIds)) {
return response()->json([
'success' => false,
'message' => 'Albümde aktif şarkı bulunamadı',
], 400);
}
// Add all songs to playlist (using existing service)
$addedCount = 0;
foreach ($songIds as $songId) {
$result = $this->playlistService->addSongToPlaylist($id, $songId, $userId);
if ($result['success']) {
$addedCount++;
}
}
return response()->json([
'success' => true,
'added_count' => $addedCount,
'total_songs' => count($songIds),
'message' => "{$addedCount} şarkı playliste eklendi",
]);
} catch (\Exception $e) {
\Log::error('Add album to playlist error:', ['message' => $e->getMessage()]);
return response()->json([
'success' => false,
'message' => 'Albüm ekleme başarısız',
], 500);
}
}
| Endpoint | Durum | Dosya |
|---|---|---|
/api/muzibu/playlists/my-playlists |
✓ VAR | api.php:44 |
/api/muzibu/songs/{id}/playlists |
✓ VAR | api.php:82 |
/api/muzibu/playlists/{id}/add-song |
✓ VAR | api.php:47 |
/api/muzibu/playlists/{id}/add-album |
✗ YOK | - |
showForSong() - Doğru çalışırshowForAlbum() - Mantık doğru, sadece backend eksikfetchPlaylists() - API doğrucheckExistingPlaylists() - API doğruaddSongToPlaylists() - API doğru, çalışıraddAlbumToPlaylists() - Backend eksik, 404 verir!getCoverUrl(300, 300))Song Menu
Album Menu
Radio Menu
playlistModal.showForSong/Album kullanıyor/api/muzibu/playlists/{id}/add-album endpoint'i YOK