2015-08-30 13:22:00 +02:00
|
|
|
<?php
|
|
|
|
|
2015-10-25 06:17:45 +01:00
|
|
|
/**
|
|
|
|
* Pony.fm - A community for pony fan music.
|
|
|
|
* Copyright (C) 2015 Peter Deltchev
|
|
|
|
*
|
|
|
|
* This program is free software: you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU Affero General Public License as published by
|
|
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU Affero General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
2015-08-30 13:22:00 +02:00
|
|
|
/*
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
| Application Routes
|
|
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
| Here is where you can register all of the routes for an application.
|
|
|
|
| It's a breeze. Simply tell Laravel the URIs it should respond to
|
|
|
|
| and give it the controller to call when that URI is requested.
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::get('/dashboard', 'TracksController@getIndex');
|
2015-11-24 12:37:33 +01:00
|
|
|
Route::get('/tracks', ['as' => 'tracks.discover', 'uses' => 'TracksController@getIndex']);
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::get('/tracks/popular', 'TracksController@getIndex');
|
|
|
|
Route::get('/tracks/random', 'TracksController@getIndex');
|
|
|
|
|
|
|
|
Route::get('tracks/{id}-{slug}', 'TracksController@getTrack');
|
2016-02-14 04:11:32 +01:00
|
|
|
Route::get('tracks/{id}-{slug}/edit', 'TracksController@getEdit');
|
2015-12-26 12:40:47 +01:00
|
|
|
Route::get('t{id}', 'TracksController@getShortlink' )->where('id', '\d+');
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::get('t{id}/embed', 'TracksController@getEmbed' );
|
|
|
|
Route::get('t{id}/stream.{extension}', 'TracksController@getStream' );
|
|
|
|
Route::get('t{id}/dl.{extension}', 'TracksController@getDownload' );
|
|
|
|
|
|
|
|
Route::get('albums', 'AlbumsController@getIndex');
|
|
|
|
Route::get('albums/{id}-{slug}', 'AlbumsController@getShow');
|
|
|
|
Route::get('a{id}', 'AlbumsController@getShortlink')->where('id', '\d+');
|
|
|
|
Route::get('a{id}/dl.{extension}', 'AlbumsController@getDownload' );
|
|
|
|
|
|
|
|
Route::get('artists', 'ArtistsController@getIndex');
|
|
|
|
Route::get('playlists', 'PlaylistsController@getIndex');
|
|
|
|
|
|
|
|
Route::get('/register', 'AccountController@getRegister');
|
|
|
|
Route::get('/login', 'AuthController@getLogin');
|
2015-12-29 17:48:35 +01:00
|
|
|
Route::post('/auth/logout', 'AuthController@postLogout');
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::get('/auth/oauth', 'AuthController@getOAuth');
|
|
|
|
|
|
|
|
Route::get('/about', function() { return View::make('pages.about'); });
|
|
|
|
Route::get('/faq', function() { return View::make('pages.faq'); });
|
2015-12-06 09:22:00 +01:00
|
|
|
Route::get('/mlpforums-advertising-program', function() { return View::make('pages.mlpforums-advertising-program'); });
|
2015-09-05 16:59:36 +02:00
|
|
|
|
2015-12-27 10:43:43 +01:00
|
|
|
Route::get('i{id}/{type}.{extension}', 'ImagesController@getImage')->where('id', '\d+');
|
2015-09-05 16:59:36 +02:00
|
|
|
|
|
|
|
Route::get('playlist/{id}-{slug}', 'PlaylistsController@getPlaylist');
|
|
|
|
Route::get('p{id}', 'PlaylistsController@getShortlink')->where('id', '\d+');
|
|
|
|
Route::get('p{id}/dl.{extension}', 'PlaylistsController@getDownload' );
|
|
|
|
|
2015-11-09 20:35:30 +01:00
|
|
|
|
|
|
|
|
|
|
|
Route::group(['prefix' => 'api/v1', 'middleware' => 'json-exceptions'], function() {
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::get('/tracks/radio-details/{hash}', 'Api\V1\TracksController@getTrackRadioDetails');
|
|
|
|
Route::post('/tracks/radio-details/{hash}', 'Api\V1\TracksController@getTrackRadioDetails');
|
2015-11-09 20:35:30 +01:00
|
|
|
|
2015-12-25 10:25:22 +01:00
|
|
|
Route::group(['middleware' => 'auth.oauth:ponyfm:tracks:upload'], function() {
|
2015-11-09 20:35:30 +01:00
|
|
|
Route::post('tracks', 'Api\V1\TracksController@postUploadTrack');
|
|
|
|
Route::get('/tracks/{id}/upload-status', 'Api\V1\TracksController@getUploadStatus');
|
|
|
|
});
|
2015-09-05 16:59:36 +02:00
|
|
|
});
|
|
|
|
|
2015-11-09 20:35:30 +01:00
|
|
|
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::group(['prefix' => 'api/web'], function() {
|
|
|
|
Route::get('/taxonomies/all', 'Api\Web\TaxonomiesController@getAll');
|
2016-01-21 04:18:18 +01:00
|
|
|
Route::get('/search', 'Api\Web\SearchController@getSearch');
|
2015-09-05 16:59:36 +02:00
|
|
|
|
|
|
|
Route::get('/tracks', 'Api\Web\TracksController@getIndex');
|
|
|
|
Route::get('/tracks/{id}', 'Api\Web\TracksController@getShow')->where('id', '\d+');
|
2015-11-08 18:46:35 +01:00
|
|
|
Route::get('/tracks/cached/{id}/{format}', 'Api\Web\TracksController@getCachedTrack')->where(['id' => '\d+', 'format' => '.+']);
|
2015-09-05 16:59:36 +02:00
|
|
|
|
|
|
|
Route::get('/albums', 'Api\Web\AlbumsController@getIndex');
|
|
|
|
Route::get('/albums/{id}', 'Api\Web\AlbumsController@getShow')->where('id', '\d+');
|
2015-11-08 18:46:35 +01:00
|
|
|
Route::get('/albums/cached/{id}/{format}', 'Api\Web\AlbumsController@getCachedAlbum')->where(['id' => '\d+', 'format' => '.+']);
|
2015-09-05 16:59:36 +02:00
|
|
|
|
|
|
|
Route::get('/playlists', 'Api\Web\PlaylistsController@getIndex');
|
2016-01-07 19:16:37 +01:00
|
|
|
Route::get('/playlists/show/{id}', 'Api\Web\PlaylistsController@getShow');
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::get('/playlists/{id}', 'Api\Web\PlaylistsController@getShow')->where('id', '\d+');
|
2015-11-08 18:46:35 +01:00
|
|
|
Route::get('/playlists/cached/{id}/{format}', 'Api\Web\PlaylistsController@getCachedPlaylist')->where(['id' => '\d+', 'format' => '.+']);
|
2015-09-05 16:59:36 +02:00
|
|
|
|
|
|
|
Route::get('/comments/{type}/{id}', 'Api\Web\CommentsController@getIndex')->where('id', '\d+');
|
|
|
|
|
|
|
|
Route::get('/artists', 'Api\Web\ArtistsController@getIndex');
|
|
|
|
Route::get('/artists/{slug}', 'Api\Web\ArtistsController@getShow');
|
|
|
|
Route::get('/artists/{slug}/content', 'Api\Web\ArtistsController@getContent');
|
|
|
|
Route::get('/artists/{slug}/favourites', 'Api\Web\ArtistsController@getFavourites');
|
|
|
|
|
|
|
|
Route::get('/dashboard', 'Api\Web\DashboardController@getIndex');
|
|
|
|
|
2015-11-24 06:47:26 +01:00
|
|
|
Route::group(['middleware' => 'auth'], function() {
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::post('/tracks/upload', 'Api\Web\TracksController@postUpload');
|
2015-12-18 09:56:13 +01:00
|
|
|
Route::get('/tracks/{id}/upload-status', 'Api\Web\TracksController@getUploadStatus');
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::post('/tracks/delete/{id}', 'Api\Web\TracksController@postDelete');
|
|
|
|
Route::post('/tracks/edit/{id}', 'Api\Web\TracksController@postEdit');
|
|
|
|
|
|
|
|
Route::post('/albums/create', 'Api\Web\AlbumsController@postCreate');
|
|
|
|
Route::post('/albums/delete/{id}', 'Api\Web\AlbumsController@postDelete');
|
|
|
|
Route::post('/albums/edit/{id}', 'Api\Web\AlbumsController@postEdit');
|
|
|
|
|
|
|
|
Route::post('/playlists/create', 'Api\Web\PlaylistsController@postCreate');
|
|
|
|
Route::post('/playlists/delete/{id}', 'Api\Web\PlaylistsController@postDelete');
|
|
|
|
Route::post('/playlists/edit/{id}', 'Api\Web\PlaylistsController@postEdit');
|
|
|
|
Route::post('/playlists/{id}/add-track', 'Api\Web\PlaylistsController@postAddTrack');
|
2015-12-28 15:31:28 +01:00
|
|
|
Route::post('/playlists/{id}/remove-track', 'Api\Web\PlaylistsController@postRemoveTrack');
|
2015-09-05 16:59:36 +02:00
|
|
|
|
|
|
|
Route::post('/comments/{type}/{id}', 'Api\Web\CommentsController@postCreate')->where('id', '\d+');
|
|
|
|
|
|
|
|
Route::post('/account/settings/save', 'Api\Web\AccountController@postSave');
|
|
|
|
|
|
|
|
Route::post('/favourites/toggle', 'Api\Web\FavouritesController@postToggle');
|
|
|
|
|
|
|
|
Route::post('/follow/toggle', 'Api\Web\FollowController@postToggle');
|
|
|
|
|
|
|
|
Route::post('/dashboard/read-news', 'Api\Web\DashboardController@postReadNews');
|
|
|
|
});
|
|
|
|
|
2015-11-24 06:39:03 +01:00
|
|
|
Route::group(['middleware' => 'auth'], function() {
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::get('/account/settings', 'Api\Web\AccountController@getSettings');
|
|
|
|
|
|
|
|
Route::get('/tracks/owned', 'Api\Web\TracksController@getOwned');
|
|
|
|
Route::get('/tracks/edit/{id}', 'Api\Web\TracksController@getEdit');
|
|
|
|
|
2016-03-06 13:27:53 +01:00
|
|
|
Route::get('/users/{userId}/albums', 'Api\Web\AlbumsController@getOwned')->where('id', '\d+');
|
|
|
|
Route::get('/users/{userId}/images', 'Api\Web\ImagesController@getOwned')->where('id', '\d+');
|
|
|
|
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::get('/albums/edit/{id}', 'Api\Web\AlbumsController@getEdit');
|
|
|
|
|
|
|
|
Route::get('/playlists/owned', 'Api\Web\PlaylistsController@getOwned');
|
|
|
|
Route::get('/playlists/pinned', 'Api\Web\PlaylistsController@getPinned');
|
|
|
|
|
|
|
|
Route::get('/favourites/tracks', 'Api\Web\FavouritesController@getTracks');
|
|
|
|
Route::get('/favourites/albums', 'Api\Web\FavouritesController@getAlbums');
|
|
|
|
Route::get('/favourites/playlists', 'Api\Web\FavouritesController@getPlaylists');
|
|
|
|
});
|
|
|
|
|
2015-11-24 11:49:47 +01:00
|
|
|
Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'can:access-admin-area']], function() {
|
|
|
|
Route::get('/genres', 'Api\Web\GenresController@getIndex');
|
2016-01-06 13:50:44 +01:00
|
|
|
Route::post('/genres', 'Api\Web\GenresController@postCreate');
|
2015-11-24 11:49:47 +01:00
|
|
|
Route::put('/genres/{id}', 'Api\Web\GenresController@putRename')->where('id', '\d+');
|
2015-12-06 03:41:12 +01:00
|
|
|
Route::delete('/genres/{id}', 'Api\Web\GenresController@deleteGenre')->where('id', '\d+');
|
2015-11-24 11:49:47 +01:00
|
|
|
});
|
|
|
|
|
2015-11-24 06:47:26 +01:00
|
|
|
Route::post('/auth/logout', 'Api\Web\AuthController@postLogout');
|
2015-09-05 16:59:36 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
|
2015-11-24 06:19:23 +01:00
|
|
|
Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'can:access-admin-area']], function() {
|
|
|
|
Route::get('/genres', 'AdminController@getGenres');
|
|
|
|
Route::get('/', 'AdminController@getIndex');
|
|
|
|
});
|
|
|
|
|
2015-09-05 16:59:36 +02:00
|
|
|
Route::get('u{id}', 'ArtistsController@getShortlink')->where('id', '\d+');
|
|
|
|
Route::get('users/{id}-{slug}', 'ArtistsController@getShortlink')->where('id', '\d+');
|
2016-03-19 03:47:45 +01:00
|
|
|
|
|
|
|
|
|
|
|
Route::group(['prefix' => '{slug}'], function() {
|
|
|
|
Route::get('/', 'ArtistsController@getProfile');
|
|
|
|
Route::get('/content', 'ArtistsController@getContent');
|
|
|
|
Route::get('/favourites', 'ArtistsController@getFavourites');
|
|
|
|
|
|
|
|
|
|
|
|
Route::group(['prefix' => 'account', 'middleware' => 'auth'], function() {
|
|
|
|
Route::get('/tracks', 'ContentController@getTracks');
|
|
|
|
Route::get('/tracks/edit/{id}', 'ContentController@getTracks');
|
|
|
|
Route::get('/albums', 'ContentController@getAlbums');
|
|
|
|
Route::get('/albums/edit/{id}', 'ContentController@getAlbums');
|
|
|
|
Route::get('/albums/create', 'ContentController@getAlbums');
|
|
|
|
Route::get('/playlists', 'ContentController@getPlaylists');
|
|
|
|
|
|
|
|
Route::get('/uploader', 'UploaderController@getIndex');
|
|
|
|
|
|
|
|
Route::get('/', 'AccountController@getIndex');
|
|
|
|
});
|
|
|
|
});
|
2015-09-05 16:59:36 +02:00
|
|
|
|
|
|
|
Route::get('/', 'HomeController@getIndex');
|
|
|
|
|
|
|
|
Route::group(['domain' => 'api.pony.fm'], function() {
|
|
|
|
Route::get('tracks/latest', ['uses' => 'Api\Mobile\TracksController@latest']);
|
|
|
|
Route::get('tracks/popular', [ 'uses' => 'Api\Mobile\TracksController@popular']);
|
|
|
|
/* Route::get('tracks/id', [ 'uses' => 'Api\Mobile\TracksController@track']);
|
|
|
|
Route::get('user', ['uses' => 'Api\Mobile\UserController@user']);*/
|
2015-09-12 23:56:09 +02:00
|
|
|
});
|